我有一些变量应该编码为 0-3 或 NA,但已用“.”编码为 1-4。对于北美。我想在 for 循环中使用 mutate() 和 case_when() 重新编码它们,但在运行循环后我的数据不会改变。没有错误出现。
转换前的数据是这样的:
tabyl(df$epds_1)
# df$epds_1 n
# . 6
# 1 472
# 2 93
# 3 45
# 4 23
# <NA> 10
我尝试使用以下方法改变十个变量:
for (v in c("epds_1", "epds_2", "epds_3", "epds_4", "epds_5", "epds_6",
"epds_7", "epds_8", "epds_9","epds_10")) {
df <- df %>% mutate(`v` = case_when(`v` == "." ~ NA_real_,
`v` == "1" ~ 0,
`v` == "2" ~ 1,
`v` == "3" ~ 2,
`v` == "4" ~ 3))
}
希望得到下表的结果(原表的上下行合计16):
tabyl(df$epds_1)
# df$epds_1 n
# 0 472
# 1 93
# 2 45
# 3 23
# <NA> 16