取一个数据集中每个变量的前n个值得宏程序,供参考下。data a;input x y z;cards;1 2 31 22 4422 44 7766 88 9922 55 6534 35 4623 25 2890 100 10023 89 8834 38 89123 122 19978 56 90;run;
proc contents data=work.a out=varname;run;
proc print data=varname;run;
proc sql;select name into:vname separated by ' 'from varname;quit;
%put &vname.;
%macro sort(name,n);%let i=1;
%do %while (%left(%scan(&name.,&i.)) ne %quote( ));%let var=%scan(&vname.,&i.);%put &var.;
proc sort data=a out=v&i.;by descending &var.;run;data var&i.(keep=&var.);set v&i.(obs=&n.);run;
%let i=%eval(&i.+1);%put &i.;%end;data aa;merge var1 %do i= 2 %to 3;var&i %end;;run;%mend;%sort(&vname.,10);


雷达卡



京公网安备 11010802022788号







