gpt4 book ai didi

r - 使用 dplyr 按自定义顺序排列行

转载 作者:行者123 更新时间:2023-12-03 10:11:27 26 4
gpt4 key购买 nike

arrange函数在 dplyr ,我们可以按升序或降序排列行。想知道如何按自定义顺序排列行。请参阅 MWE。

Reg <- rep(LETTERS[1:3], each = 2)
Res <- rep(c("Urban", "Rural"), times = 3)
set.seed(12345)
Pop <- rpois(n = 6, lambda = 500000)
df <- data.frame(Reg, Res, Pop)

df
Reg Res Pop
1 A Urban 500414
2 A Rural 500501
3 B Urban 499922
4 B Rural 500016
5 C Urban 501638
6 C Rural 499274

df %>%
arrange()

期望输出
   Reg   Res    Pop
5 C Urban 501638
6 C Rural 499274
1 A Urban 500414
2 A Rural 500501
3 B Urban 499922
4 B Rural 500016

最佳答案

我们可以使用 factor更改 order以自定义方式

df %>%
arrange(factor(Reg, levels = LETTERS[c(3, 1, 2)]), desc(Res), desc(Pop))
# Reg Res Pop
#1 C Urban 501638
#2 C Rural 499274
#3 A Urban 500414
#4 A Rural 500501
#5 B Urban 499922
#6 B Rural 500016

或与 match获取索引和 arrange在上面
df %>%
arrange(match(Reg, c("C", "A", "B")), desc(Res), desc(Pop))

如果我们有多个列到 arrange按降序排列
df %>%
arrange_at(2:3, desc) %>%
arrange(match(Reg, c("C", "A", "B")))

关于r - 使用 dplyr 按自定义顺序排列行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46129322/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com