|
|
6#

楼主 |
发表于 2009-8-12 13:17:14
|
只看该作者
Re: SAS中可以创建宏变量数组吗?
把macro改成下面的可以跑的。
%macro rename_var(orig_ds,var_ds);
options nosymbolgen nomprint;
data _null_;
set &var_ds;
call symputx('oldname'||strip(put(_n_,best.)),old_name);
call symputx('newname'||strip(put(_n_,best.)),new_name);
run;
data &orig_ds;
set &orig_ds;
%let id=%sysfunc(open(&var_ds));
%let nobs=%sysfunc(attrn(&id,nobs));
%syscall set(id);
%do i=1 %to &nobs;
%let rc=%sysfunc(fetchobs(&id,&i));
rename &&oldname&i=&&newname&i;
%end;
%let id=%sysfunc(close(&id));
run;
%mend; |
|