如何使用命令在R中进行二维排序

时间:2013-09-18 06:21:17

标签: r

一个令人尴尬的简单问题,但我似乎无法按顺序弯曲秩序()。

我有一些数据对(x,y),我只想在x上订购,并且y要跟随。 E.g。

2, 1
3, 2
1, 3

重新排序:

1, 3
2, 1
3, 2

2 个答案:

答案 0 :(得分:1)

在R中,order()返回行索引的向量。在您的示例中:

> order(data$x)
[1] 3 1 2

您可以将其解释为“最低值在第3行,第二行在第1行”,依此类推。重要的是,它不会以任何方式更改数据框。要使用order()获取按x排序的数据框,您只需使用:

> data[order(data$x),]
  x y
3 1 3
1 2 1
2 3 2

答案 1 :(得分:0)

在R中,order(vector)将以所需顺序为您提供索引。使用这些索引,您可以重新排序两个向量。 以下是您的示例的命令:

df <- data.frame(x=c(2,3,1), y=c(1,2,3) )

df[order(df$x), ]