第一种方法:利用sort过程步的dupout和nodupkey,原始的test数据集将输出为_unique和_dups两个数据集。
proc sort data = test out=_unique dupout = _dups nodupkey ;
by var;
run ;
第二种方法:在数据步中利用by和first.var and Last.var。注意:此_dups和上面的_dups得到的结果并不相同,实际操作就知道差异在哪里。
proc sort data = test;
by var;
run;
data _dups ;
set test;
by var;
if not (first.var and Last.var) then output ;
run;
第三种方法:利用SQL过程步的having count(),设置条件为>1即可输出重复值;如果要输出没有重复值的,当然是having count()=1;此方法得到的_dups与第二种方法相同。
proc sql;
create table _dups as select * from test group by var having count(*)> 1 order by var;
quit;