在SAS中,有没有一种方法可以基于除一列之外的所有列来删除重复项?
据我所知,以下是根据所有列删除重复项的说明
proc sort data=xyz_01 nodupkey out=xyz_02;
by _all_;
run;由于输入表有很多列,我是否必须列出by语句中的所有列?
发布于 2019-01-24 20:41:36
一种方法是使用宏变量
proc sql noprint;
select name into :cols separated by " "
from Dictionary.columns
where upcase(MEMNAME)= "CLASS"
and upcase(libname) ="SASHELP"
and upcase(name) ne "AGE";尝试%put,然后在日志中查看您想要的列的排序顺序。
%put &cols;
proc sort data=sashelp.class nodupkey out=class;
by &cols;
run;或者简单地列出变量,如下所示
proc sort data=sashelp.class nodupkey out=class;
by name sex height weight;
run;发布于 2019-01-24 18:07:50
您可以使用Nodup或Nodup选项。在by语句中提到你的主键。例如:Proc sort data=<dataset> out=<out> noduprecs; by <variable>; run;
或Proc sort data=<dataset> out=<out> nodup; by <variable>; run;
https://stackoverflow.com/questions/54341745
复制相似问题