秩函数在 R 中的工作原理

Кир*_*еев 1 r ranking

同志们!请教。rank 函数在 R 中是如何工作的。我想确切地了解函数获得结果的公式和逻辑。比如独立贴在Excel里我不是很懂,比如我怎么得到这样的结果,不使用函数怎么自己得到。

> rank(c(1,10,1))
[1] 1.5 3.0 1.5
Run Code Online (Sandbox Code Playgroud)

我相信有人会用简单的数学来解释

Yev*_*Kad 5

在您的示例中,有 3 个数字:1,10,1

您将它们从最小到最大排序并分配一个等级:

  • 1 - 等级 1
  • 1 - 等级 2
  • 10 - 等级 3

但是 1 和 1 是相同的 - 所以ties.method正在应用。默认方法是"average",因此排名 1 和 2 是平均的 - (1+2)/2=1.5

如果你改变你的向量并做rank(c(1,10,10)),你会得到1.0 2.5 2.5

  • 1 - 等级 1
  • 10 - 等级 2
  • 10 - 等级 3

排名 2 和排名 3 的平均值: (2+3)/2=2.5

您可以检查 other 的文档ties.method,例如min将采用最小级别的重复项:

rank(c(1,10,1),ties.method='min')
[1] 1 3 1

Run Code Online (Sandbox Code Playgroud)