根据特定行中的值重新排序列.

lea*_*ner 6 sorting r dataframe

我在数据帧中有以下数据:

  aa bb  cc
1 3 4 5
2 5 4 3
3 7 8 6 
..
100 33 63 55
Run Code Online (Sandbox Code Playgroud)

我需要根据最后一行中的值对列重新排序.这种转变的结果将是:

  bb  cc  aa
1 4  5  3
2 4  3  5 
3 8  6  7
...
100 63 55 33
Run Code Online (Sandbox Code Playgroud)

Jos*_*ich 8

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),])]
Run Code Online (Sandbox Code Playgroud)

  • `x [nrow(x),]`返回最后一行...`-x [nrow(x),]`是相反的,所以它按你想要的顺序排序.您可以使用`x [,order(x [nrow(x),],减去= TRUE)]`,但我更喜欢打字.:) (3认同)