使用 .default 进行 R 重新编码时出现长度错误

问题描述

我的数据库如下所示。

enter image description here

我尝试以下代码,以便重新编码“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 返回错误。此外,您应该将数据替换为 NULL,而不是 NA。 :

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_))