4

一个令人尴尬的简单问题,但我似乎无法让 order() 屈服于我的意愿。

我有一些数据对 (x, y),我只想对 x 进行排序,然后再对 y 进行排序。例如

2, 1
3, 2
1, 3

被重新排序为:

1, 3
2, 1
3, 2
4

2 回答 2

1

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

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

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

> data[order(data$x),]
  x y
3 1 3
1 2 1
2 3 2
于 2013-09-18T07:05:12.440 回答
0

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

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

df[order(df$x), ]
于 2013-09-18T07:10:13.567 回答