下面是我想重命名得到的变量,重命名前每个变量后面都有1或2或3或4,一共四组,我想把它们都重命名成下面这些后面不带数字的变量,然后可以把四个数据集都用set连接起来,请问怎么做?我用的是sas9.2 32位的软件,里面的&&var&j总是编译错。
AE
AEFL
AEKSSJ
AEJSSJ
AEYZCD
AETD
AETDCS
AETDSJ
AETDQT
AEZG
AEHYZ
AEJLYX
AECSCS
AECSQT
AESAE
AEHYGX
程序如下:
%let pub_var=DN CN DM;
options mprint mlogic;
data var;
input varname $;
cards;
AE
AEFL
AEKSSJ
AEJSSJ
AEYZCD
AETD
AETDCS
AETDSJ
AETDQT
AEZG
AEHYZ
AEJLYX
AECSCS
AECSQT
AESAE
AEHYGX
;
run;
proc sql;
select count(*) into:n from var;
quit;
proc sql;
select varname into:var1-:var%left(&n) from var;
quit;
%macro AE(OUT=AE_ALL);
%local j;
%do i=1 %to 4;
data AE&i;
set a.&dataset._fmt(keep=&pub_var &var1&i-&&var%left(&n)&i);
do j=1 to &n;
rename &&var&j.&i=&&var&j;
end;
group=1;
run;
proc append base=&OUT data=AE&i;
RUN;
%end;
data a.&OUT;
set &OUT(where=(AE^='' and AE^='无'));
label group='不良事件编号';
RUN;
proc sort data=a.&OUT;
by cn dn group;
run;
%mend AE;
%AE(OUT=AE_ALL);