R中order() 与 rank()的差别

为这个曾头疼过一阵,总是将order()与rank()搞混淆。

先看下结果:

test <- c(2,4,3,1)
order(test)
rank(test)

order的运行结果为:4 1 3 2
rank的运行结果为:2 4 3 1

以下解释差别:
order是将结果按值的大小一个个抽取出来,如先抽第·4·个元素1,再抽第·1·个元素2,再抽第·3·个元素3,再抽第·2·个元素4,将抽取的元素在矢量中的位置表达出来,即结果 4 1 3 2
rank是对矢量进行整体排序,元素2排第 2 ,元素4排第 4 ,元素3排第 3 ,元素1排第 1 ,整体记录下来,即结果2 4 3 1

最后谈谈order的用法:
order()的核心是可以记录元素顺序抽取的的次序,最直接的用法就是v[order(v)],会对元素(numberic、character等)进行升序排序

你可能感兴趣的:(R中order() 与 rank()的差别)