首页 > 解决方案 > R: 排名与 ties.method = 平均不显示小数排名

问题描述

我有一个数据集,它根据值对列进行排名。我正在使用rankties.method = c("average")方法。似乎使用排名的平均值与我的预期不同。

我尝试了 4 个数据集:

1:

structure(list(X1.4 = c(1, 2, 2, 2, 4)), row.names = c(NA, 5L ), class = "data.frame")

2:

structure(list(X1.4 = c(1, 2, 2, 4)), row.names = c(NA, -4L), class = "data.frame")

3:

structure(list(X1.6 = c(1, 2, 2, 2, 2, 2, 3)), row.names = c(NA, 7L), class = "data.frame")

4: structure(list(X1.8 = c(1, 2, 2, 2, 2, 2, 2, 8)), row.names = c(NA, -8L), class = "data.frame")

当我使用rankwith 时ties.method = c("average"),它们导致:

1 rank(x, ties.method = c("average"))

X1.4 <NA> <NA> <NA> <NA> 1 3 3 3 5

2 rank(y, ties.method = c("average"))

X1.4 <NA> <NA> <NA> 1.0 2.5 2.5 4.0

3 rank(z, ties.method = c("average"))

X1.6 <NA> <NA> <NA> <NA> <NA> <NA> 1 4 4 4 4 4 7

4 X1.8 <NA> <NA> <NA> <NA> <NA> <NA> <NA> 1.0 4.5 4.5 4.5 4.5 4.5 4.5 8.0

我的第一直觉是,与偶数的关系会导致以小数为平均值,因为它们完全分解为.5s。我想找到一种方法让奇数的领带仍然显示小数。

例如,我希望 #1 是:

X1.4 <NA> <NA> <NA> <NA> 1 2.33 2.33 2.33 5

这可能吗?谢谢。

标签: raveragerank

解决方案


推荐阅读