如何在 R 中通过多列共同对数据框排序?


我们可以使用 order 函数通过多列对数据框进行排序。

示例

考虑以下数据框 -

> df <- data.frame(x1 = factor(c("Hi", "Med", "Hi", "Low"),
levels = c("Low", "Med", "Hi"), ordered = TRUE),
x2 = c("A", "B", "D", "C"), x3 = c(4, 7, 5, 3),
x4 = c(9, 5, 7, 4))
> df
x1 x2 x3 x4
1 Hi A 4 9
2 Med B 7 5
3 Hi D 5 7
4 Low C 3 4

假设我们想按 x4 列降序再按 x1 列升序对数据框排序。

具体操作方法如下 -

> df[with(df, order(-x4, x1)), ]
x1 x2 x3 x4
1 Hi A 4 9
3 Hi D 5 7
2 Med B 7 5
4 Low C 3 4

我们也可以使用列索引的方式 -

> df[order(-df[,4], df[,1]), ]
x1 x2 x3 x4
1 Hi A 4 9
3 Hi D 5 7
2 Med B 7 5
4 Low C 3 4

更新于: 06-07-2020

264 次浏览

启动你的 事业

完成课程以获得认证

开始
广告