今回はサブセット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;


- 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;


- 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;


- then outputを使って同じことをしようとしたものの、id4が欠損しているので、再現できてない。