重复问题

时间:2015-06-16 19:34:01

标签: duplicates sas

我有重复问题。 实际上我需要的只是看到重复,但我的表有很多变量,如下所示:

 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; 

任何想法是否有效?

2 个答案:

答案 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;