我有重复问题。 实际上我需要的只是看到重复,但我的表有很多变量,如下所示:
a b c d e
32 ayi dam som kem
32 ayi dam som tws
32 ayi dam tsm tws
12 mm ds de ko
12 mm tmm to ko
如果'a''b''c'和'd'变量相同,我试图保留。所以我只需要前两列。我试着这样做
proc sort data=al nodupkey dupout=dups;
by a b c d;
run;
任何想法是否有效?
答案 0 :(得分:2)
在SAS 9.3+中,您可以使用新的nouniquekey
选项轻松完成此操作。
proc sort data=have nouniquekey out=want;
by a b c d;
run;
删除任何唯一的行并留下重复的行。
如果你有早期版本的SAS,你可以在定期排序后做一些相当简单的事情。
所以,按照上面的例子进行排序但没有nodupkey:
data want;
set have;
by a b c d;
if not (first.d and last.d);
run;
删除基于a b c d
的第一个和最后一条记录的记录。
答案 1 :(得分:0)
另一种选择可能是Proc SQL,不需要预先排序:
proc sql;
create table want as
select * from have
group by a, b, c, d
having count(*)>1; /*This is to tell SAS only to keep those dups*/
quit;