use*_*549 5 sql sorting sas distinct proc
我有以下数据集:
data work.dataset;
input a b c;
datalines;
27 93 71
27 93 72
46 68 75
55 55 33
46 68 68
34 34 32
45 67 88
56 75 22
34 34 32
;
run;
Run Code Online (Sandbox Code Playgroud)
我想从前两列中选择所有不同的记录,所以我写道:
proc sql;
create table work.output1 as
select distinct t1.a,
t1.b
from work.dataset t1;
quit;
Run Code Online (Sandbox Code Playgroud)
但现在我想知道 var c 的值在输出中看到的组合 (var a, var b) 旁边的前一组中代表什么。有办法找出来吗?我尝试按照 proc sort 进行排序,但我不知道它的工作方式是否与在 proc sql 中选择不同记录相同。
proc sort data = work.dataset out = work.output2 NODUPKEY;
by a b;
run;
Run Code Online (Sandbox Code Playgroud)
提前感谢您的帮助。
NODUPKEY 将为每个键返回一个观察结果。在您的示例中,仅保留 a=27 和 b=93 的两个观察值之一。c=71 或 c=72 将丢失。
NODUPREC 选项将删除重复记录。a=27 和 b=93 的两个观测值将被保留,但仅保留 a=34、b=34 和 c=32 值的两个观测值之一。