SAS宏重命名变量

问题描述 投票:-4回答:1

我有一个我想写的宏...... X1-X50

但我想将变量重命名为A1 A2 A3 A4 A5 B1 B2 B3,依此类推至E5。

X1 - X5将是A1-A5 X6 - X10将是B1 - B5,依此类推。

如何在SAS中使用宏重命名变量?

macros sas
1个回答
1
投票
  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;
  2. 对于所有变量,创建一个具有old = new形式的旧名称和新名称的宏变量,即X1 = A1 X2 = A2 X6 = B1 ...等。 proc sql; select catx(' = ', old, new) into :rename_list separated by " " from names; quit;
  3. 在PROC DATASETS中应用重命名语句 - 这会更改数据但不会完全传递数据。 proc datasets lib=work; modify dataSetName; rename &rename_list.; run;quit;
© www.soinside.com 2019 - 2024. All rights reserved.