avatar
StatX
精华
2014-06-09
@StatX

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

所属话题:SAS,  重复值,  Duplicate value

4840
0