R 中的 rank() 函数使用浮点而不是整数对对象进行排名

rank() function in R is ranking objects with floating points rather than integers

我是 R 的新手,所以这对许多有经验的程序员来说似乎微不足道,提前道歉!

我有一个长度为 8 的数字向量,如下所示:

data <- c(45, 67, 23, 24, 5, 23, 45, 23)

当我输入:rank(data),R returns:[1] 6.5 8.0 3.0 5.0 1.0 3.0 6.5 3.0

然而,根据我对排名的(非常基本的)理解,我希望 R 对我来说 return 只有整数......例如:

[1] 6 8 2 5 1 3 7 4

rank()如何告诉我data中的第一个元素是浮点数排序而不是整数排序?是不是因为 data 中有重复的值,所以 rank() 试图以我不期望的方式处理关系?如果是这样,请告诉我如何解决此问题,以便获得看起来像我之前预期的输出。此外,非常感谢有关 rank() 如何处理 NA 值的任何信息。关于 rank() 的基本描述以及可以使用的附加功能将非常棒!我在 youtube 上寻找视频并搜索 Whosebug 无济于事!非常感谢。

来自 ?rank:

With some values equal (called ‘ties’), the argument ties.method determines the result at the corresponding indices. The "first" method results in a permutation with increasing values at each index set of ties. The "random" method puts these in random order whereas the default, "average", replaces them by their mean, and "max" and "min" replaces them by their maximum and minimum respectively, the latter being the typical sports ranking.

听起来您正在使用默认设置 "average" 来打破平局,它使用平均值,不一定是整数。

内置文档应该始终是您寻求帮助的第一站。在这种情况下(和大多数情况下),它详细说明了所有 "bells and whistles"---这里没有很多:只是平局处理和 NA 处理。它的底部也有示例。