如何在 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
廣告