如何在SAS中对变量进行重新排序(附实例)

1,623 阅读2分钟

你可以使用SAS中的RETAIN函数来快速重新排列数据集中的变量。

下面是使用这个函数的三种最常见的方法。

方法1:重新排列所有变量

data new_data;
    retain var4 var5 var1 var3 var2;
    set original_data;
run;

方法2:将一个变量移到前面

data new_data;
    retain var4;
    set original_data;
run;

方法3:将几个变量移到前面

data new_data;
    retain var4 var5;
    set original_data;
run;

下面的例子说明了如何在SAS中用以下数据集来使用每种方法:

/*create dataset*/
data original_data;
    input team $ points rebounds assists steals;
    datalines;
A 18 10 4 5
B 24 11 6 7
C 26 14 6 8
D 34 22 5 3
E 38 3 7 7
F 45 12 4 4
G 23 7 9 1
;
run;

/*view dataset*/
proc print data=original_data;

例1:重新排列所有变量

下面的代码显示了如何按照以下顺序重新排列变量:球队、篮板、助攻、抢断,然后是得分:

/*create new dataset with variables reordered*/
data new_data;
    retain team rebounds assists steals points;
    set original_data;
run;

/*view new dataset*/
proc print data=new_data;

reorder variables in SAS

请注意,这些变量是按照我们在RETAIN函数中指定的顺序重新排序的。

例2:将一个变量移到前面

下面的代码显示了如何将助攻变量移到前面,而将其他所有变量保持在相同的顺序:

/*create new dataset with variables reordered*/
data new_data;
    retain assists;
    set original_data;
run;

/*view new dataset*/
proc print data=new_data;

我们可以看到,assists变量现在在第一个位置,而其他所有变量的顺序保持不变。

例3:将几个变量移到前面

下面的代码显示了如何将助攻篮板 这两个变量移到前面,而其他所有变量的顺序保持不变:

/*create new dataset with variables reordered*/
data new_data;
    retain assists;
    set original_data;
run;

/*view new dataset*/
proc print data=new_data;

我们可以看到,助攻篮板这两个变量现在处于第一和第二的位置,而其他所有变量的顺序保持不变。

其他资源

下面的教程解释了如何在SAS中执行其他常见任务:

如何在SAS中使用Proc Summary
如何在SAS中使用Proc Tabulate
如何在SAS中重命名变量
如何在SAS中创建新变量