重命名合并中的SAS变量



假设我有以下数据集查找:

ID   T001  T002  T002  T004  T005
1    0     1     2     3     4
2    1     2     3     4     5

我想将其合并到我的主数据集main:

proc sql;
create table main as
select a.*, b.*
from main as a
left join lookup as b on a.ID = b.ID;
quit;

然而,这将合并"0"处的变量;T001"T002"T003";等我正在尝试使用merge/join重命名变量,而不必手动重命名每个变量,因为数据集中有100个这样的变量。我正在寻找类似的东西

ID   V1    V2    V3    V4    V5
1    0     1     2     3     4
2    1     2     3     4     5

您可以在加入后使用简单的宏函数动态更改变量名称

data have;
input ID T001 T002 T003 T004 T005;
datalines;
1 0 1 2 3 4
2 1 2 3 4 5
;
%macro rn;
%do i = 1 %to 5;
T00&i. = V&i.
%end;
%mend;
proc datasets lib=work nolist;
modify have;
rename %rn;
run;quit;

编辑:

data have;
array t T001-T586 (586*100);
run;
%macro rn;
%do i=1 %to 586;
T%sysfunc(putn(&i., z3.)) = V&i.
%end;
%mend;
proc datasets lib=work nolist;
modify have;
rename %rn;
run;quit;

最新更新