R中的sort(),rank()和order()之间的差异是什么。你能举例说明吗?
答案 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]
希望这会有所帮助。