如何在 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中创建频率表