SAS宏重命名变量

时间:2018-10-20 04:23:43

标签: macros sas

我有一个宏要写入...。 X1-X50

但是我想将变量重命名为 A1 A2 A3 A4 A5 B1 B2 B3一直到E5。

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

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

1 个答案:

答案 0 :(得分: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 ... etc。

    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;