我有一堆变量,其中有这些替代文本答案。其中一些替代答案对应于多项选择中的答案,所以我要做的就是将这些值重新编码回数字格式。我做了一个有效的代码:
s1 <- s1 %>%
mutate(s1_auto1_eigendom = coalesce(case_when(
s1_auto1_eigendom_anderstext == 'alleen ik' ~ 1,
s1_auto1_eigendom_anderstext == 'Alleen van mij' ~ 1,
s1_auto1_eigendom_anderstext == 'echtpaar' ~ 1,
s1_auto1_eigendom_anderstext == 'eigen auto' ~ 1,
s1_auto1_eigendom_anderstext == 'lease auto partner via zijn werkgever' ~ 2,
s1_auto1_eigendom_anderstext == 'Lease auto van mijn partner' ~ 3,
s1_auto1_eigendom_anderstext == 'mij' ~ 1,
s1_auto1_eigendom_anderstext == 'Mij' ~ 1,
s1_auto1_eigendom_anderstext == 'mij zelf' ~ 1,
s1_auto1_eigendom_anderstext == 'Mijn eigen auto' ~ 1,
s1_auto1_eigendom_anderstext == 'mijzelf' ~ 1,
s1_auto1_eigendom_anderstext == 'Mijzelf' ~ 1,
s1_auto1_eigendom_anderstext == 'van 1e pers.' ~ 1,
s1_auto1_eigendom_anderstext == 'van mij' ~ 1,
s1_auto1_eigendom_anderstext == 'Van mij' ~ 1,
s1_auto1_eigendom_anderstext == 'van mij alleen' ~ 1,
s1_auto1_eigendom_anderstext == 'Van mij alleen' ~ 1,
s1_auto1_eigendom_anderstext == 'van mij alleen.' ~ 1,
s1_auto1_eigendom_anderstext == 'van mij dus' ~ 1,
s1_auto1_eigendom_anderstext == 'van mij en 1 lid van mijn huishouden' ~ 1,
s1_auto1_eigendom_anderstext == 'van mijzelf' ~ 1,
s1_auto1_eigendom_anderstext == 'Van mijzelf' ~ 1,
s1_auto1_eigendom_anderstext == 'van ons samen' ~ 1,
s1_auto1_eigendom_anderstext == 'Van ons samen ' ~ 1), s1_auto1_eigendom))
s1 <- s1 %>%
mutate(s1_auto1_eigendom_anderstext = case_when(s1_auto1_eigendom != 7 ~ NA))
但是我还有 8 个变量,我必须为这些变量做同样的事情。我也必须为 s1_auto2_eigendom、s1_auto3_eigendom、... s1_auto8_eigendom 做同样的事情,所以我想我会通过创建一个函数来压缩它。
我试过这个:
recode_s1_autox_eigendom <- function(x,y) {
mutate(x = coalesce(case_when(
y == 'alleen ik' ~ 1,
y == 'Alleen van mij' ~ 1,
y == 'echtpaar' ~ 1,
y == 'eigen auto' ~ 1,
y == 'lease auto partner via zijn werkgever' ~ 2,
y == 'Lease auto van mijn partner' ~ 3,
y == 'mij' ~ 1,
y == 'Mij' ~ 1,
y == 'mij zelf' ~ 1,
y == 'Mijn eigen auto' ~ 1,
y == 'mijzelf' ~ 1,
y == 'Mijzelf' ~ 1,
y == 'van 1e pers.' ~ 1,
y == 'van mij' ~ 1,
y == 'Van mij' ~ 1,
y == 'van mij alleen' ~ 1,
y == 'Van mij alleen' ~ 1,
y == 'van mij alleen.' ~ 1,
y == 'van mij dus' ~ 1,
y == 'van mij en 1 lid van mijn huishouden' ~ 1,
y == 'van mijzelf' ~ 1,
y == 'Van mijzelf' ~ 1,
y == 'van ons samen' ~ 1,
y == 'Van ons samen ' ~ 1), x))
mutate(y = case_when(x != 7 ~ NA))
}
s1 <- recode_s1_autox_eigendom(s1$s1_auto1_eigendom,s1$s1_auto1_eigendom_anderstext)
但是当我这样做时,什么也没有发生。没有错误,但我没有得到任何结果。我首先尝试使用管道选项,然后尝试在函数内的代码前面使用 s1 <- ,但这也不起作用。
为了稍微解释一下数据,s1_auto1_eigendom 取值 1-7,7 表示“anders”,对于许多答案 7,s1_auto1_eigendom_anderstext 中会有一个文本条目,其中一些文本条目对应于 7 以外的其他值。
例子:
col1 col2 col3 col4 ....
1 1
2 4
7 "mij" 5
3
4 4
7 "mijzelf" 7 "mij"
7 "other"
7 "other" 7 "other"
至
col1 col2 col3 col4 ....
1 1
2 4
1 5
3
4 4
1 1
7 "other"
7 "smthng" 7 "other"