在论坛里学习了批量修改SAS数据集的方法,如下:
proc sql;
create table b as select * from dictionary.columns
where libname="WORK" and memname="ONE181";
quit; /*提取数据集所有变量生成b*/
proc sql;
select count(*) into:n from b;
quit; /*计算变量个数,赋值给宏变量n*/
proc sql;
select name into: var1-:var%left(&n) from b;
quit; /*将全部变量赋给n个宏变量*/
%macro rename;
data one18;
set one181;
%do i=1 %to &n;
rename &&var&i=&&var&i.._18;
%end;
run;
%mend; /*宏循环*/
%rename
但是结果one18仅将最后一个变量名加上了"_18",请教这是为什么呢?先谢谢啦!