如何在SAS中使用PROC RANK(附实例)

1,028 阅读2分钟

你可以使用SAS中的PROC RANK 来计算一个或多个数字变量的等级。

下面是使用这个程序的四种最常见的方法。

方法1:对一个变量进行排名

proc rank data=original_data out=ranked_data;
   var var1;
   ranks var1_rank;
run;

方法2:按组排列一个变量

proc rank data=original_data out=ranked_data;
   var var1;
   by var2;
   ranks var1_rank;
run;

方法3:将一个变量排成百分位数

proc rank data=original_data groups=4 out=ranked_data;
   var var1;
   ranks var1_rank;
run;

方法4:对多个变量进行排名

proc rank data=original_data out=ranked_data;
   var var1 var2;
   ranks var1_rank var2_rank;
run;

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

/*create dataset*/
data original_data;
    input team $ points rebounds;
    datalines;
A 25 10
A 18 4
A 18 7
A 24 8
B 27 9
B 33 13
B 31 11
B 30 16
;
run;

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

例1:对一个变量进行排名

下面的代码显示了如何创建一个名为point_rank的新变量,对每支球队的得分进行排名。

/*rank points scored by team*/
proc rank data=original_data out=ranked_data;
   var points;
   ranks points_rank;
run;

/*view ranks*/
proc print data=ranked_data;

得分最多的球队获得最高排名,得分最少的球队获得最低排名。

任何得分相同的球队都被赋予一个平均排名。例如,得分第一和第二低的行都得到1.5的排名,因为这是1和2的平均值。

请注意,你可以使用降序语句来给得分最多的球队分配最低的排名:

/*rank points scored by team in descending order*/
proc rank data=original_data descending out=ranked_data;
    var points;
    ranks points_rank;
run;

/*view ranks*/
proc print data=ranked_data;

例2:按组排列一个变量

下面的代码显示了如何创建一个名为points_rank的新变量,对得分进行排名,按球队分组。

/*rank points scored, grouped by team*/
proc rank data=original_data out=ranked_data;
    var points;
    by team;
    ranks points_rank;
run;

/*view ranks*/
proc print data=ranked_data;

例3:将一个变量按百分位数排名

我们可以使用group语句将变量排成百分位数组。例如,我们可以将每个积分值排入一个四分位数(四个组)。

/*rank points into quartiles*/
proc rank data=original_data groups=4 out=ranked_data;
   var points;
   ranks points_rank;
run;

/*view ranks*/
proc print data=ranked_data;

积分值处于最低四分位数的行被分配到0组,积分处于次低四分位数的行被分配到1组,以此类推。

注意:如果要将数值分配到十位数,只需使用group=10

例四:多变量排名

下面的代码显示了如何创建多个新的变量来对积分篮板进行排名。

proc rank data=original_data out=ranked_data;
   var points rebounds;
   ranks points_rank rebounds_rank;
run;

其他资源

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

如何在SAS中使用Proc Summary
如何在SAS中使用Proc Tabulate
如何在SAS中使用PROC Transpose
如何在SAS中创建频率表