dxystata 发表于 2014-11-5 09:50 
有没办法将5 11 放入一个宏变量中,以空格分隔。谢谢!
/* 也可以不用宏变量 */
data _null_;
set aaa1 end = last;
length tag $20;
retain tag " ";
if ^missing(var) and _n_ ^=1 then do;
n = _n_ -1;
tag = catx(' ', tag, put(n, 2.)); end;
if last then do;
* call symput('tag', tag);
* call execute('Data bbb1; set aaa1; if _n_ in( ' ||'&tag' || ') then var= "T"; run;');
call execute('Data bbb2; set aaa1; if _n_ in( ' ||tag|| ') then var= "T"; run;');
end;
run;
/* 另一种方法,只用数据步 */
data ddd1;
do I = Nobs to 1 by -1;
set aaa1 nobs=nobs point = i;
if ^missing(lag(var)) and var ^="T" then var="T";
output;
end; stop;
run;
data ddd2;
do p = Nobs to 1 by -1;
set ddd1 nobs=nobs point = p;
output;
end; stop;
run;