我正在尝试为2个变量创建排名,然后我将总结以创建分数。
问题:我需要对整个数据集进行排名(即进入 k 分位数组,其中 k = n)。
我现在使用proc rank来计算1变量的排名。首先调用变量,我想生成名为firstrank的等级。
proc rank data = moo out= outmoo;
var firstrank;
run;
我的输出看起来像
Obs first firstrank
1 0.000 9.5
2 0.000 9.5
3 0.000 9.5
4 0.000 9.5
5 0.000 9.5
6 0.000 9.5
7 0.000 9.5
8 0.000 9.5
9 0.000 9.5
10 0.000 9.5
11 0.000 9.5
12 0.000 9.5
13 0.000 9.5
14 0.000 9.5
15 0.000 9.5
16 0.000 9.5
17 0.000 9.5
18 0.000 9.5
19 0.105 19.5
20 0.105 19.5
21 0.210 23.5
22 0.210 23.5
23 0.210 23.5
24 0.210 23.5
25 0.210 23.5
26 0.210 23.5
正如你所看到的那样,排名首先在变量的平均值之间进行平均。
我想要实现的是所有值,其中first = 0,firstrank = 1,first = 0.105,firstrank = 2,依此类推。
有没有办法使用SAS proc rank来做到这一点?或者还有另一个程序要做吗?
答案 0 :(得分:2)
如果我理解你的问题,你需要TIES = DENSE选项(或CONDENSE,它的别名)。请参阅the documentation on PROC RANK。
data test;
do x = 1 to 8;
do y = 1 to 3;
output;
end;
end;
run;
proc rank data=test out=want ties=dense;
var x;
ranks r;
run;