proc contents data=sashelp.class noprint out=class_var;
run;
proc sql noprint;
select count(*) into:nvar
from class_var
where type eq 2
;
quit;
%put &nvar;
proc sql noprint;
select name into:m_var separated by ' '
from class_var
where type eq 2
;
quit;
%put &m_var;
data nkwilling;
set sashelp.class;
array ar(&nvar) &m_var;
array new_ar(&nvar) $;
do i=1 to &nvar;
new_ar(i)=ar(i);
end;
drop i;
run;
%macro sort;
%do m=1 %to &nvar;
proc sort data=nkwilling nodupkey out=nkwilling_&m;
by %do i=1 %to &m;new_ar&i %end;;
run;
%end;
%mend sort;
%sort;
看看是不是你想要的。