|
|
Re: 关于变量的删除
随便写个凑合看看。
eg1是要改的data名,eg1是放改后的data名,obs=2表示选前2个观测进行判断.
[code:2gunwr7q]
%macro check(old=,obs=,new=);
proc contents data=&old. out=temp (keep=name) ;
run;
proc sql noprint;
select name,count(*) into: name separated by ' ',: no
from temp;
quit;
%let list=;
%let i=1;
%do %while ( &i<=&no);
%let t=%scan(&name,&i);
data _null_;
set &old.(obs=&obs keep=&t);
temp=lag(&t);
if _n_=2 ;
if missing(&t) and missing(temp) then call symput('list', "&list."||" "||"&t." );
run;
%let i=&i+1;
%end;
data &new.;
set &old.;
drop &list;
run;
%mend check;
%check(old=eg1, obs=2,new=eg2);
[/code:2gunwr7q] |
|