R使用.default重新编码得到长度错误

R recoding using .default got length error

我的数据库如下所示。

我尝试使用以下代码,以便重新编码“EDUC”列。

gun.control$EDUC <- recode(gun.control$EDUC,
                       'IAP' = NULL,
                       'DK' = NULL,
                       .default = gun.control$EDUC,
                       .missing = NULL)

但是,显示错误"Error: '.default' must be length 24 or one, not 62466."。 我已经尝试 length(gun.control$EDUC) 并且它是 62366 长。 unique(gun.control$EDUC)的结果显示Levels: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 IAP DK NA

不知道是我哪里做错了,导致了这个问题。任何人都可以在这里看到任何解决方案吗?真的很感谢。

您的数据中可能有 NA 个值,因此 recode returns 出现错误。此外,您应该将数据替换为 NA 而不是 NULL。 :

gun.control$EDUC[gun.control$EDUC %in% c('IAP', 'DK')] <- NA

我们可以使用replace

library(dplyr)
gun.control %>%
        mutate(EDUC = replace(EDUC, EDUC %in% c("IAP", "DK"), NA_character_))