SORTプロシジャで重複レコードを削除・抽出するオプション「NODUPKEY」と「NOUNIQUEKEY」を紹介したいと思います。
サンプルデータ
data DT1; input A B C$ @@; cards; 1 1 a 1 2 a 2 1 c 2 1 b ;
|
例①
proc sort data=DT1 nodupkey out=DT2 dupout=DT3; by A B; run;
DT3
|
解説
- 「NODUPKEY」を指定すると、BY変数が重複してるレコードがあった場合に、最初のレコードのみ残して、以降の重複レコードを削除してくれる。
- 「OUT=」のデータセットには削除後のレコードが入る。
- 「DUPOUT=」のデータセットには削除したレコードが入る。
- 「OUT=」を省略すると、「DATA=」のデータセットに上書きしてしまうので、注意!
例② (SAS9.3からの機能)
proc sort data=DT1 nouniquekey out=DT4 uniqueout=DT5;
by A B;run; DT4
DT5
|
解説
- 「NOUNIQUEKEY」を指定すると、BY変数が重複してるレコードと、重複していないレコードを分割することが出来る。
- 「OUT=」のデータセットには重複してるレコードが入る。
- 「UNIQUEOUT=」のデータセットには重複してないレコードが入る。
- 「OUT=」を省略すると、「DATA=」のデータセットに上書きしてしまうので、注意!
「NOUNIQUEKEY」 は結構助かる機能ですね。
0 件のコメント:
コメントを投稿