nodupオプションは公式ドキュメントに説明がありませんが、動くようなので一応メモしておきます。
proc sort data = DummyData out = Sorted2 nodup;
by AGE;
run;
proc sort data = DummyData out = Sorted3 nodup;
by NAME;
run;
AGEをキーにしたときにもNAME=Aokiのオブザベーションが削除される予想だったが、第一変数がソートされていないと削除されないらしい。
第一変数をソートしなくてもたまたま第一変数が都合よくソートされるデータを作って試してみる。
data DummyData2;
input NAME $ AGE SEX $;
cards;
Aoki 10 M
Iioka 15 F
Aoki 10 M
Ueki 20 M
Eto 10 F
Onozawa 10 F
;
run;
proc sort data = DummyData2 out = Sorted4 nodup;
by AGE;
run;
ソート状況が異なるだけでnodupオプションの挙動が異なることがわかった。
手元のマニュアルでは「すべての変数の値が重複している場合にオブザベーションを削除する」とあるが、使い方には注意が必要。
コメント