这是一段示例代码:
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
提前致谢
答案 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))