gpt4 book ai didi

r - 如何按 R 中预定的因子水平顺序对数据框进行排序?

转载 作者:行者123 更新时间:2023-12-02 03:11:55 24 4
gpt4 key购买 nike

我有一个数据框,其中一列包含唯一因素。我想按照预定义的因子水平顺序对这个数据框进行排序,独立于原始顺序。

例如我的数据是这样的:

label <- c('tree','lake','house', 'human')

number <- c(50,1,2,5)


df <- data.frame(

group = label,

value = number)

category_order <- category_order = c('tree','house','lake','human')

其中 df 具有以下形式

     group number
1 tree 50
2 lake 1
3 house 2
4 human 5

但我希望它像 category_oder 一样排序,所以 df_new 看起来像:

     group number
1 tree 50
2 house 2
3 lake 1
4 human 5

我知道在这种情况下我可以只交换第二行和第三行,但一般来说我不知道​​数据帧中因素的顺序,我找不到办法做到这一点对我可以使用的因素以及它们最终应该采用的顺序没有严格的限制。 (例如字母顺序)

最佳答案

我们可以将“组”的 级别 指定为 category_order 并使用它来“安排”

library(dplyr)
df1 <- df %>%
arrange(factor(group, levels = category_order))
df1
# group value
#1 tree 50
#2 house 2
#3 lake 1
#4 human 5

或者使用fct_relevel

library(forcats)
df %>%
arrange(fct_relevel(group, category_order))

关于r - 如何按 R 中预定的因子水平顺序对数据框进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57316356/

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