|
板凳

楼主 |
发表于 2005-11-10 23:40:47
|
只看该作者
RE:Collon
谢谢,您的这个程序非常实用,我以前也编写了一个宏程序,但没有您的精练,向您学习。
[code:38cb0]%MACRO repeatd(data,var=,outdata=,prnopt=T);
options nodate nonumber;title;
%if &outdata= %then %let outdata=&data;;
%if &var= %then %do;
proc iml;use &data;setin &data;
xx=rowcat((contents()+" ")`); call symput ('var',xx);quit;
%end;
%let nv=%wordcnt(string=&var, delim=%str( ));
proc sort data=&data; by &var;
data &outdata;set &data;_tmp=0;
%do i=1 %to &nv;
%let nvi=%scan(&var, &i);if &nvi=lag(&nvi) then _tmp=_tmp+1;
%end;
%if &prnopt=T %then %do;
proc print;where _tmp=&nv;var &var;
title "Duplicated Observations Were Deleted";run;title;
%end;
data &outdata;set &outdata;if _tmp=&nv then delete;drop _tmp;run;
%MEND repeatd;[/code:38cb0] |
|