SAS中文论坛
标题:
一个头疼的问题 - 恳请各位施以援手
[打印本页]
作者:
shiyiming
时间:
2009-1-11 18:54
标题:
一个头疼的问题 - 恳请各位施以援手
一个头疼的问题 <!-- s:? --><img src="{SMILIES_PATH}/icon_confused.gif" alt=":?" title="Confused" /><!-- s:? -->
我有这样的数据集,有3个班级的学生,有一个变量叫VAR(比如,学生身高)。然后,我想计算出一个变量叫Score。 正如下面例子所表示的,身高排名第一的,score等于1,第二的,score等于2,以此类推。比如, Class 1的情况。这个不难。
头疼的是,不少VAR是一样的,比如Class 2中,第3个和第4个同学的身高都是170。 根据规则,要求这两个同学的Score = (3 + 4)/2 = 3.5.
同样的,Class 3中,第1个和第2个同学的身高都是179, 根据规则,这两个同学的score = (1 + 2)/2 = 1.5. 同理,Class 3中的第5、6、7 个同学的身高都是171, 则他们的score 都一样为 (5 + 6 + 7)/3 = 6.
我的问题是,如何写程序来计算出这样的Score。 尤其那些有相同身高的同学的Score, 如何计算。恳请各位施以援手,这里先说声多谢了。
Class Stu_ID VAR Score
1 1 180 1
1 2 174 2
1 3 173 3
1 4 166 4
1 5 155 5
2 1 177 1
2 2 175 2
2 3 170 3.5
2 4 170 3.5
3 1 179 1.5
3 2 179 1.5
3 3 175 3.5
3 4 175 3.5
3 5 171 6
3 6 171 6
3 7 171 6
作者:
shiyiming
时间:
2009-1-12 08:44
标题:
Re: 一个头疼的问题 - 恳请各位施以援手
[code:3tgdv8yr]proc sort data=a;
by class stu_id;
run;
proc rank data=a out=result ties=mean descending;
var var;
ranks score;
by class;
run;[/code:3tgdv8yr]
作者:
shiyiming
时间:
2009-1-13 10:30
标题:
Re: 一个头疼的问题 - 恳请各位施以援手
多谢byes兄,你真是太牛了。我用了你的方法,结果正是我想要得,多谢多谢!!! <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D -->
祝新春胜意,好人在新的一年里天天开心。
欢迎光临 SAS中文论坛 (https://mysas.net/forum/)
Powered by Discuz! X3.2