什么是 R 语言中 sort()、rank() 和 order() 的区别?可以举例说明吗?
sort()
函数将向量按升序排序。
rank()
函数返回向量中每个数字对应的排名,最小的数字排名为1。
order()
函数返回向量在排序后的索引。
例如:如果我们对向量 c (3, 1, 2, 5, 4) 应用这些函数:
sort(c(3, 1, 2, 5, 4))
将返回 c(1, 2, 3, 4, 5)
rank(c(3, 1, 2, 5, 4))
将返回 c(3, 1, 2, 5, 4)
order(c(3, 1, 2, 5, 4))
将返回 c(2, 3, 1, 5, 4)。如果按照这个顺序排列,将获得排序后的向量。请注意,v[2] = 1、v[3] = 2、v[1] = 3、v[5] = 4 和 v[4] = 5。
R 中还有处理并列的方法。如果运行 rank(c(3, 1, 2, 5, 4, 2))
,则会将排名1分配给1,因为有两个2,R将在2和3上进行排名,但将排名2.5分配给每个2,接下来3将获得4.0的排名。
rank(c(3, 1, 2, 5, 4, 2))
将返回 [4.0 1.0 2.5 6.0 5.0 2.5]
希望这能有所帮助。
rank
如何处理并列情况。例如,可以检查rank(c(3, 1, 2, 5, 4, 2))
。 - Ronak Shahc(3, 1, 2, 5, 4)[order(c(3, 1, 2, 5, 4))]
- Khaynes