SAS中文论坛

标题: SAS宏在临床试验中应用-移除重复记录数据 [打印本页]

作者: shiyiming    时间: 2005-8-24 14:54
标题: SAS宏在临床试验中应用-移除重复记录数据
[code:9d4cb]%macro remove(data=,  /*原始数据集*/
               out= /*输出移除重复数据的数据集*/ );

proc sort in=&data out=&out noduplicates;
by _all_;
run;
proc print data=&out;
run;
%mend;

data kkk;
input id v1-v2;
datalines;
1  11  12
2  21  22
1  11  12
3  31  32
;
run;

%remove(data=kkk,out=out);[/code:9d4cb]
作者: shiyiming    时间: 2005-10-1 09:14
标题: collen管理员真好
[color=blue:58072]我来论坛没多少次,就发现collen的好几个程序好管用,
这种无私奉献的精神值得提倡![/color:58072]
作者: shiyiming    时间: 2005-11-10 23:40
标题: 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]




欢迎光临 SAS中文论坛 (http://mysas.net/forum/) Powered by Discuz! X3.2