Error: Problem with `mutate()` input `chldwork`.
x Input must be a vector, not a `formula` object.
ℹ Input `chldwork` is `case_when(...)`.
Run `rlang::last_error()` to see where the error occur
当我尝试运行以下代码时,我一直收到这个错误:
d5clean <- d5clean %>%
mutate(chldwork = case_when(is.na(curjobr5) & wrmm12r5 == 0 & wrno12r5 == 0 & wrow12r5 == 0 ~ 0,
is.na(curjobr5) & wrmm12r5 == 1 & wrno12r5 == 0 & wrow12r5 == 0 ~ 1,
is.na(curjobr5) & wrmm12r5 == 1 & wrno12r5 == 1 & wrow12r5 == 0 ~ 1,
is.na(curjobr5) & wrmm12r5 == 1 & wrno12r5 == 1 & wrow12r5 == 1 ~ 1,
is.na(curjobr5) & wrmm12r5 == 0 & wrno12r5 == 0 & wrow12r5 == 1 ~ 1,
is.na(curjobr5) & wrmm12r5 == 0 & wrno12r5 == 1 & wrow12r5 == 1 ~ 1,
is.na(curjobr5) & wrmm12r5 == 0 & wrno12r5 == 1 & wrow12r5 == 0 ~ 1,
is.na(curjobr5) & wrmm12r5 == 1 & wrno12r5 == 0 & wrow12r5 == 0 ~ 1,
curjobr5 == 0 & is.na(wrmm12r5) & wrno12r5 == 0 & wrow12r5 == 0 ~ 0,
curjobr5 == 0 & is.na(wrmm12r5) & wrno12r5 == 1 & wrow12r5 == 0 ~ 1,
curjobr5 == 0 & is.na(wrmm12r5) & wrno12r5 == 1 & wrow12r5 == 1 ~ 1,
curjobr5 == 1 & is.na(wrmm12r5) & wrno12r5 == 0 & wrow12r5 == 0 ~ 1,
curjobr5 == 1 & is.na(wrmm12r5) & wrno12r5 == 1 & wrow12r5 == 0 ~ 1,
curjobr5 == 1 & is.na(wrmm12r5) & wrno12r5 == 1 & wrow12r5 == 1 ~ 1,
curjobr5 == 0 & wrmm12r5== 0 & is.na(wrno12r5) & wrow12r5 == 0 ~ 0,
curjobr5 == 0 & wrmm12r5== 0 & is.na(wrno12r5) & wrow12r5 == 1 ~ 1,
curjobr5 == 0 & wrmm12r5== 1 & is.na(wrno12r5) & wrow12r5 == 1 ~ 1,
curjobr5 == 1 & wrmm12r5== 1 & is.na(wrno12r5) & wrow12r5 == 1 ~ 1,
curjobr5 == 1 & wrmm12r5== 0 & is.na(wrno12r5) & wrow12r5 == 0 ~ 1,
curjobr5 == 1 & wrmm12r5== 0 & is.na(wrno12r5) & wrow12r5 == 0 ~ 1,
curjobr5 == 0 & wrmm12r5==0 & wrno12r5 == 0 & is.na(wrow12r5) ~ 0,
curjobr5 == 0 & wrmm12r5==0 & wrno12r5 == 1 & is.na(wrow12r5) ~ 1,
curjobr5 == 0 & wrmm12r5==1 & wrno12r5 == 1 & is.na(wrow12r5) ~ 1,
curjobr5 == 1 & wrmm12r5==1 & wrno12r5 == 1 & is.na(wrow12r5) ~ 0,
curjobr5 == 1 & wrmm12r5==0 & wrno12r5 == 0 & is.na(wrow12r5) ~ 1,
curjobr5 == 1 & wrmm12r5==1 & wrno12r5 == 0 & is.na(wrow12r5) ~ 1,
curjobr5 == 1 & wrmm12r5==1 & wrno12r5 == 1 & is.na(wrow12r5) ~ 1,
curjobr5 == 0 & wrmm12r5 == 0 & wrno12r5 == 0 & wrow12r5 == 0 ~ 0,
curjobr5 == 1 & wrmm12r5 == 0 & wrno12r5 == 0 & wrow12r5 == 0 ~ 1,
curjobr5 == 1 & wrmm12r5 == 1 & wrno12r5 == 0 & wrow12r5 == ~ 1,
curjobr5 == 1 & wrmm12r5 == 1 & wrno12r5 == 1 & wrow12r5 == 0 ~ 1,
curjobr5 == 1 & wrmm12r5 == 1 & wrno12r5 == 1 & wrow12r5 == 1 ~ 1,
curjobr5 == 0 & wrmm12r5 == 1 & wrno12r5 == 0 & wrow12r5 == 0 ~ 1,
curjobr5 == 0 & wrmm12r5 == 1 & wrno12r5 == 1 & wrow12r5 == 0 ~ 1,
curjobr5 == 0 & wrmm12r5 == 1 & wrno12r5 == 1 & wrow12r5 == 1 ~ 1,
curjobr5 == 0 & wrmm12r5 == 0 & wrno12r5 == 1 & wrow12r5 == 0 ~ 1,
curjobr5 == 0 & wrmm12r5 == 0 & wrno12r5 == 1 & wrow12r5 == 1 ~ 1,
curjobr5 == 0 & wrmm12r5 == 0 & wrno12r5 == 0 & wrow12r5 == 1 ~ 1,
TRUE ~ as.numeric(88)))
我试图将多个工作变量组合成一个工作变量,其中有几个非随机缺失值。关于如何让它发挥作用有什么想法吗?
我能够很好地运行这个代码:
d4clean <- d4clean %>%
mutate(chldwork = case_when(curjobr4 == 0 & wrbf12r4 == 0 ~ 0, #condition 1
curjobr4 == 1 & wrbf12r4 == 1 ~ 1, #condition 2
curjobr4 == 1 & wrbf12r4 == 0 ~ 1, #condition 3
curjobr4 == 0 & wrbf12r4 == 1 ~ 1, #condition 4
is.na(curjobr4) & wrbf12r4 == 1 ~ 1, #condition 5
is.na(curjobr4) & wrbf12r4 == 0 ~ 0, #condition 6
TRUE ~ 99)) #all other cases
此外,我不确定这是否包括我需要合并的所有正确案例。在这一点上,我有点斗鸡眼。
在其中一行中,要比较的值缺少
...
curjobr5 == 1 & wrmm12r5 == 1 & wrno12r5 == 0 & wrow12r5 == ~ 1,
^
...
导致错误