r - R: 排名与 ties.method = 平均不显示小数排名
问题描述
我有一个数据集,它根据值对列进行排名。我正在使用rank
该ties.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")
当我使用rank
with 时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
:
我的第一直觉是,与偶数的关系会导致以小数为平均值,因为它们完全分解为.5
s。我想找到一种方法让奇数的领带仍然显示小数。
例如,我希望 #1 是:
X1.4 <NA> <NA> <NA> <NA>
1 2.33 2.33 2.33 5
这可能吗?谢谢。
解决方案
推荐阅读
- java - 将 Joda-Time DateTime 格式化为字符串
- javascript - 将 JS 中的日期与 d/m/yyyy 格式进行比较?
- c# - 打开用 C# 创建的 excel 文件后出错
- grammar - 这个文法是 LL(1) 文法吗?
- java - SQL 的 CHARINDEX 语法异常
- python - 如何使 SQLAlchemy 引擎在整个烧瓶应用程序中可用?
- javascript - 使用数组默认值反应 useState()
- python - pip update 不起作用~无法安装pygame
- javascript - 如何访问此动态导入中的数据?
- django - 使用上下文变量来命名“节”而不是传递值