【问题标题】:Recode a factor variable, dropping N/A重新编码因子变量,删除 N/A
【发布时间】:2021-06-24 12:37:32
【问题描述】:

我有一个包含 14 个级别的因子变量,我试图将其折叠为仅 3 个级别。它包含两个我也想删除的 N/A。

我的代码如下所示:

job <- fct_collapse(E$occupation, other = c("7","9", "10", "13" "14"), 1 = c("1", "2", "3", "12"), 2 = c("4", "5", "6", "8", "11"))

但是,它只会给我带来大量错误。有谁能帮帮我吗?

【问题讨论】:

    标签: r dplyr recode levels


    【解决方案1】:

    我们也可以使用命名为list

    library(forcats)
    lst1 <- setNames(list(as.character(c(7, 9, 10, 13, 14)), 
       as.character(c(1, 2, 3, 12)), as.character(c(4, 5, 6, 8, 11))), c('other', 1, 2))
    fct_collapse(df$occupation, !!!lst1)
    

    数据

    df <- structure(list(occupation = c("1", "3", "5", "7", "9", "10", 
    "12", "14", "13", "4", "7", "6", "5")), class = "data.frame", row.names = c(NA, 
    -13L))
    

    【讨论】:

      【解决方案2】:

      对于数字,请尝试在 fct_collapse 中使用反引号。

      job <- forcats::fct_collapse(df$occupation, 
                                   other = c("7","9", "10", "13", "14"), 
                                    `1` = c("1", "2", "3", "12"), 
                                    `2` = c("4", "5", "6", "8", "11"))
      

      【讨论】:

        猜你喜欢
        • 2021-12-08
        • 2012-12-19
        • 1970-01-01
        • 2014-10-14
        • 2021-06-14
        • 1970-01-01
        • 2018-04-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多