我在数据框中有以下数据:
aa bb cc
1 3 4 5
2 5 4 3
3 7 8 6
..
100 33 63 55
我需要根据最后一行中的值对列重新排序。这种转变的结果将是:
bb cc aa
1 4 5 3
2 4 3 5
3 8 6 7
...
100 63 55 33
答案 0 :(得分:7)
x <- structure(list(aa = c(3L, 5L, 7L, 33L), bb = c(4L, 4L, 8L, 63L),
cc = c(5L, 3L, 6L, 55L)), .Names = c("aa", "bb", "cc"),
class = "data.frame", row.names = c("1", "2", "3", "100"))
x[,order(-x[nrow(x),])]
答案 1 :(得分:1)
以Joshua Ulrich的答案为基础,如果你想按行名排序,而不是数字:
x[, order(-x[which(rownames(x) == '100'), ]) ]
其中100
是行名称,如上例所示。