r - rank 函数在 R 中的工作原理
问题描述
同志们!请教。rank 函数在 R 中的工作原理。我想准确了解函数获得结果的公式和逻辑。比如在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
您可以检查 other 的文档ties.method
,例如min
将采用最小的重复等级:
rank(c(1,10,1),ties.method='min')
[1] 1 3 1
推荐阅读
- java - 在@ManyToMany 映射中未将数据插入数据库(空指针异常)
- excel - 通过 GUI 脚本通过排序保存 SM37 行?
- python - NLTK Mutli word tokenzier 工作区分大小写。我想为大写和小写工作
- node.js - Firestore Admin SDK - 内存使用量不断增加
- apache-kafka - 阿帕奇卡夫卡与卡夫卡流
- arrays - 初始化二维数组时出现运行时错误 5
- google-sheets - IMPORTRANGE 导入一系列多个单元格
- javascript - 为什么验证不适用于此功能?
- arrays - Bash函数获取任意数组的键,而不使用eval
- r - 根据条件跳过 lapply 中的特定值