关于R语言rank函数(ties.method="average")计算结果的疑问
关于R语言rank函数average方法的排名验证
首先明确ties.method="average"的核心规则:对于向量中重复的数值,取它们在升序排列后占据的所有位置的算术平均值,作为每个重复值的最终排名。
步骤1:整理原始向量与排序结果
原始向量:
x <- c(0.016, 0.036, 0.015, 0.022, 0.022, 0.043, 0.024, 0.012, 0.018, 0.005, 0.005, 0.036, 0.062, 0.028, 0.024)
将向量升序排列后,对应原始索引和排序位置如下:
- 0.005(原始索引10、11):排序位置1、2
- 0.012(原始索引8):排序位置3
- 0.015(原始索引3):排序位置4
- 0.016(原始索引1):排序位置5
- 0.018(原始索引9):排序位置6
- 0.022(原始索引4、5):排序位置7、8
- 0.024(原始索引7、15):排序位置9、10
- 0.028(原始索引14):排序位置11
- 0.036(原始索引2、12):排序位置12、13
- 0.043(原始索引6):排序位置14
- 0.062(原始索引13):排序位置15
步骤2:计算重复值的平均排名
- 0.005:(1+2)/2 = 1.5
- 0.022:(7+8)/2 = 7.5
- 0.024:(9+10)/2 = 9.5
- 0.036:(12+13)/2 = 12.5
步骤3:正确的排名结果
实际运行rank(x, ties.method="average")得到的正确结果为:
[1] 5.0 12.5 4.0 7.5 7.5 14.0 9.5 3.0 6.0 1.5 1.5 12.5 15.0 11.0 9.5
结论
你对0.024对应排名应为9.5的判断是正确的,提供的结果存在错误,0.024的两个实例都应该返回9.5。
内容的提问来源于stack exchange,提问作者Lax Chan
相关产品推荐
相关产品推荐

