我有一个宏要写入...。 X1-X50
但是我想将变量重命名为 A1 A2 A3 A4 A5 B1 B2 B3一直到E5。
X1-X5为A1- A5 X6-X10将是B1-B5,依此类推。
如何在SAS中使用宏重命名变量?
答案 0 :(得分:1)
使用两列的旧名称和新名称创建数据集
data names;
letter=64;
counter=0;
do i=1 to 50;
counter=ifn(counter=5, 1, counter+1);
if mod(i, 5)=1 then
do;
letter+1;
letter_char=byte(letter);
end;
old=catt('X', put(i, 2. -l));
new=catt(letter_char, counter);
output;
end;
run;
为所有变量创建具有旧名称和新名称的宏变量,其形式为old = new,即X1 = A1 X2 = A2 X6 = B1 ... etc。
proc sql;
select catx(' = ', old, new) into :rename_list separated by " "
from names;
quit;
在PROC DATASETS中应用重命名语句-这会更改数据,但不会完全传递数据。
proc datasets lib=work;
modify dataSetName;
rename &rename_list.;
run;quit;