我想知道是否有办法取消重复记录WITHOUT排序?有时候,我想保留原来的顺序,只想删除重复的记录。
是否可以?
顺便说一句,以下是我对不重复记录的了解,它最终会进行排序。
1.
proc sql;
create table yourdata_nodupe as
select distinct *
From abc;
quit;
2.
proc sort data=YOURDATA nodupkey;
by var1 var2 var3 var4 var5;
run;
您可以使用哈希对象来跟踪在传递数据集时看到的值。仅当遇到尚未观察到的键时输出。该输出按照输入数据集中观察数据的顺序进行输出。
以下是使用输入数据集“sashelp.cars”的示例。原始数据按 Make 的字母顺序排列,因此您可以看到输出数据集“nodupes”保持相同的顺序。
data nodupes (drop=rc);;
length Make $13.;
declare hash found_keys();
found_keys.definekey('Make');
found_keys.definedone();
do while (not done);
set sashelp.cars end=done;
rc=found_keys.check();
if rc^=0 then do;
rc=found_keys.add();
output;
end;
end;
stop;
run;
proc print data=nodupes;run;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)