假设我有以下数据集查找:
ID T001 T002 T002 T004 T005
1 0 1 2 3 4
2 1 2 3 4 5我想将它合并到我的主dataset 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;但是,这将合并"T001“、"T002”、"T003“等变量。我试图用合并/连接重命名变量,而不必手动重命名数据集中的每一个变量,因为数据集中有100个变量。我想找些像
ID V1 V2 V3 V4 V5
1 0 1 2 3 4
2 1 2 3 4 5发布于 2020-11-11 07:32:31
在联接之后,可以使用一个简单的宏函数动态地更改变量名。
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;https://stackoverflow.com/questions/64782127
复制相似问题