sort()、rank() 和 order() 之间的区别

Difference between sort(), rank(), and order()

R 中的 sort()、rank() 和 order() 之间的区别是什么

能举例说明吗?

sort() 按升序对向量进行排序。

rank() 给出向量中存在的数字的相应排名,最小的数字获得排名 1。

order() returns 排序后的向量索引。

例如:如果我们将这些函数应用于向量 - 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中也有tie处理方法。如果你 运行 rank(c (3, 1, 2, 5, 4, 2)) 它会给 Rank 1 到 1,因为有两个 2 在场 R 会把他们排在 2 和 3 但给他们每个人分配 Rank 2.5,接下来的 3 将获得 Rank 4.0,所以

rank(c (3, 1, 2, 5, 4, 2)) 会给你输出 [4.0 1.0 2.5 6.0 5.0 2.5]

希望对您有所帮助。