如何在 sas 中使用 proc rank(附示例)


您可以使用 SAS 中的PROC RANK来计算一个或多个数值变量的排名。

以下是使用此过程的四种最常见方法:

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

 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 $pointsrebounds;
    datalines ;
At 25 10
At 18 4
At 18 7
At 24 8
B 27 9
B 33 13
B 31 11
B 30 16
;
run ;

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

示例 1:排名一的变量

以下代码展示了如何创建一个名为points_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:将变量按百分位数排序

我们可以使用 groups 语句将变量排序为百分位组。例如,我们可以将每个点值分为四分位数(四组):

 /*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组,依此类推。

注意:要以十分位数分配值,只需使用groups=10

示例 4:对多个变量进行分类

以下代码展示了如何创建新变量来对得分篮板球进行分类:

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

其他资源

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

如何在SAS中使用过程摘要
如何在 SAS 中使用 Proc Tabulate
如何在 SAS 中使用 PROC 转置
如何在SAS中创建频率表

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注