R中sort(),rank()和order()之间的区别

时间:2019-01-03 06:24:14

标签: r sorting difference ranking

R中的sort(),rank()和order()之间的差异是什么。你能举例说明吗?

1 个答案:

答案 0 :(得分:5)

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 中还有一种 tie 处理方法。如果您运行rank(c (3, 1, 2, 5, 4, 2)),它将给出1到1的等级,因为当前有两个2,R会将它们分别排在2和3上,但是给它们分别分配2.5的等级,接下来的3将获得4.0的等级,所以

rank(c (3, 1, 2, 5, 4, 2))将为您输出 [4.0 1.0 2.5 6.0 5.0 2.5]

希望这会有所帮助。