我对宏比较难理解,就这例子,下面程序怎样修改实现?
************************;
***macro definition;
************************;
%macro renamevar(dslib,dsname,prefix,suffix,fromnum,tonum) ;
ods listing close;
ods trace on;
ods output variables=varlist ;
proc contents data=&dslib..&dsname;
run;
ods trace off;
ods listing;
proc sql;
select cats(variable,"=","&prefix._",variable,"_&suffix")
into :renamelist separated by " "
from varlist
where num between &fromnum and &tonum;
quit;
*********************************************************************;
*** thanks for Malcolm's suggestion; proc datasets is more efficient.
***********************************************************************;
proc datasets lib=&dslib ;
modify &dsname;
rename &renamelist;
run;
%mend renamevar;
******************;
*** do it;
*****************;
%renamevar(sashelp,class,pre,suf,3,5);