第一种方法:利用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;