【发布时间】:2014-11-17 11:12:54
【问题描述】:
我有一百左右的列,我想使用以下宏在 SAS 中重命名:
%macro rename1(oldvarlist, newvarlist);
%let k=1;
%let old = %scan(&oldvarlist, &k);
%let new = %scan(&newvarlist, &k);
%do %while(("&old" NE "") & ("&new" NE ""));
rename &old = &new;
%let k = %eval(&k + 1);
%let old = %scan(&oldvarlist, &k);
%let new = %scan(&newvarlist, &k);
%end;
%mend;
这些列当前命名为 C5、C7、C9、...、C205,我想将它们重命名为 AR_0、AR_1、...、AR100。
使用上面的宏,我怎样才能将这些新名称放在以下代码的逗号之后而不用一一编写?
%rename1(C5--C205, # new names here #);
【问题讨论】:
-
旧的变量名和新的变量名之间会有联系吗?就像 C5 将是 AR_5 还是无论旧的 var 名称是什么,第一个新的 var 名称都会是 AR_0?
-
不,唯一的联系是它们保持相同的顺序,即 C5 = AR_0、C7 = AR_1 等等。
标签: sas rename columnname