r - 如何根据排名更改行的位置

时间:2018-06-09 17:15:14

标签: r

这是一段示例代码:

df<-data.frame(c(14, 37, 15, 18, 1, 7))
df$rankk=rank(-df) 

这就是结果:

    Rank
14   4
37   1
15   3
18   2
 1   6
 7   5

现在我希望像行一样的位置也会根据他们的排名而变化。 期望的:

37   1
18   2
15   3
14   4
 7   5
 1   6

提前致谢

1 个答案:

答案 0 :(得分:3)

在基础R中,您正在寻找order

df <- df[order(df$rankk), ]

在tidyverse世界中,您使用arrange

df %<>%
   arrange(rankk)

或者最好还是跳过创建排名列,

df <- data.frame(x = c(14, 37, 15, 18, 1, 7))
# base R version
df <- df[order(-df$x), ]
# tidyverse version
df %<>%
   arrange(desc(x))