今回はサブセットIFについて解説していきたいと思います。
- (参考:【SAS】IFステートメントは処理を分岐できる。その1 | ビジネスイッチ (how-to-business.com))
- (参考:【SAS】IFステートメントは処理を分岐できる。その2~ELSE IF、ELSE~ | ビジネスイッチ (how-to-business.com))
/* サブセットIF */
data data1;
id1="1111"; id2="1111"; id3="1111";
output;
id1="2222"; id2="2222"; id3="2222";
output;
id1="3333"; id2="3333"; id3="3333";
output;
run;
data data2; set data1;
if id1 = "2222";
id4 = "2222";
run;
![](https://how-to-business.com/wp-content/uploads/2023/01/f39838a921064457a522cf5dd3b632fe.png)
![](https://how-to-business.com/wp-content/uploads/2023/01/71bc42dcc5262930394b5462707bf9fa.png)
- if id1 = “2222”;が真のオブザベーションにのみ、id4 = “2222”;の処理を行い、このオブザベーションしか出力しない。
/* then */
data data1;
id1="1111"; id2="1111"; id3="1111";
output;
id1="2222"; id2="2222"; id3="2222";
output;
id1="3333"; id2="3333"; id3="3333";
output;
run;
data data2; set data1;
if id1 = "2222" then id4 = "2222";
run;
![](https://how-to-business.com/wp-content/uploads/2023/01/then_1.png)
![](https://how-to-business.com/wp-content/uploads/2023/01/then_2.png)
- thenを使って同じことをしようとしたものの、他のオブザベーションまで出力されているので、再現できてない。
/* output */
data data1;
id1="1111"; id2="1111"; id3="1111";
output;
id1="2222"; id2="2222"; id3="2222";
output;
id1="3333"; id2="3333"; id3="3333";
output;
run;
data data2; set data1;
if id1 = "2222" then output;
id4 = "2222";
run;
![](https://how-to-business.com/wp-content/uploads/2023/01/output_1.png)
![](https://how-to-business.com/wp-content/uploads/2023/01/output_2.png)
- then outputを使って同じことをしようとしたものの、id4が欠損しているので、再現できてない。