楼主咋发两个贴?要送200金币?
如果变量类型统一的话可以用数组。下面是非数组方法:
data a;
input x y z t w $;
cards;
1 2 3 4 s
3 4 2 1 s
;
run;
%macro cut(ds=,cutnum=);
proc contents data=&ds out=b(keep=name varnum);
run;
proc sql noprint;
select name into:name_list separated by '-'
from b
where varnum>=&cutnum.
order by varnum
;
quit;
%put &name_list.;
data a;
set a;
%let i=1;
%do %while(%scan(&name_list,&i,-) ne %quote());
%let var=%scan(&name_list,&i,-);
if _n_>1 then
call missing(&var);
%let i=%eval(&i+1);
%end;
run;
%mend;
%cut(ds=a , cutnum=2)


雷达卡





京公网安备 11010802022788号







