R中的order()函数

时间:2015-12-28 04:15:44

标签: r

我使用order()函数执行以下操作

x<-c(12,5,13,8)
order(x)

它给出了以下结果,表明它是降序

[1] 2 4 1 3

但是,当我键入以下内容时

x<-c(12,11,13,14)
order(x)

它给出了一个按升序排列的结果

[1] 2 1 3 4

我不确定我是否遗漏了任何东西。谢谢你的帮助!

2 个答案:

答案 0 :(得分:3)

Order按x的升序返回行号(默认情况下)。所以你的输出是预期的。

如果您希望订购矢量x

> x<-c(12,5,13,8)

# returns row numbers
> order(x)
[1] 2 4 1 3

# returns the ordered vector#############
> x[order(x)]
[1]  5  8 12 13

要按降序排序,请使用:

 > x[order(x, decreasing = TRUE)]
[1] 13 12  8  5    

答案 1 :(得分:1)

您只是在阅读该函数的方式上有误。 返回的数字就是向量中的位置。

您的第一个示例:

  

x <-c(12,5,13,​​8)

     

order(x)

[1] 2 4 1 3

这告诉您,按升序排列,第一个数字位于第二个位置= 5,第二个数字位于第四个位置= 8,依此类推。