私が正しく理解している場合、複数の観測値が「キー」変数の値が同じであるデータセットからすべての観測値を削除する必要があります (すべての重複を削除します)。
SAS でこれを行う最も簡単な方法は、そのデータセットを「キー」変数で並べ替えてから、別のデータ ステップを使用して新しいコピーを作成することです。例証するよりも説明するのが難しい:
data have;
input x y z;
datalines4;
1 2 3
1 2 3
2 3 4
3 4 5
3 4 6
3 4 7
4 5 6
4 5 6
;;;;
run;
proc sort data=have;
by x y z;
run;
data want;
set have;
by x y z;
if first.z and last.z;
run;
サブセット化ステートメントは、ステートメントの使用時に作成された自動変数と変数IF
を使用して、4 つの「一意の」観察のみを保持します。FIRST.
LAST.
BY
代わりに、重複の 1 つを保持したい場合は、次のNODUPKEY
オプションを使用できPROC SORT
ます。
proc sort nodupkey data=have out=want2;
by x y z;
run;
これにより、例から 2 つの観測が削除され、キーに一意の値が残ります。この手法を使用して保持される観測を制御することはできません。