R 中等级函数的工作原理
How the rank function works in R
同志们!请教。
rank 函数在 R 中是如何工作的。我想准确地理解函数得到结果的公式和逻辑。例如,独立 post 它在 Excel
不太明白,比如我是怎么得到这样的结果,不使用函数怎么自己得到。
> rank(c(1,10,1))
[1] 1.5 3.0 1.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
您可以查看其他 ties.method
的文档,例如 min
将采用最小的重复等级:
rank(c(1,10,1),ties.method='min')
[1] 1 3 1
同志们!请教。 rank 函数在 R 中是如何工作的。我想准确地理解函数得到结果的公式和逻辑。例如,独立 post 它在 Excel 不太明白,比如我是怎么得到这样的结果,不使用函数怎么自己得到。
> rank(c(1,10,1))
[1] 1.5 3.0 1.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
您可以查看其他 ties.method
的文档,例如 min
将采用最小的重复等级:
rank(c(1,10,1),ties.method='min')
[1] 1 3 1