我有以下问题。我正在分析问卷中的数据,其中向受访者提供了 7 个可能的答案,并且必须选择其中的 3 个。所以我所拥有的是一组 7 个虚拟变量,如果受访者选择了答案,则编码为 1,否则编码为 0。
a1 a2 a3 a4 a5 a6 a7
0 0 1 1 0 1 0
1 1 1 0 0 0 0
0 1 0 0 1 0 1
我想将这些假人转换回三个变量,每个变量都包括给出的答案。那是这样的:
choice1 choice2 choice3
a3 a4 a6
a1 a2 a3
a2 a5 a6
我尝试在整组“a”变量上使用 tidyverse “gather”
int <- old_df %>% mutate_at(vars(a1:a7), ~ ifelse(. == 0, NA, .))
new <- int %>% gather("choice1", "present", a1:a7, na.rm = TRUE)
但是,我没有得到我想要的,因为我只有 1 个变量,以及所有可能的“a”答案。
我还尝试对每个“a”变量使用“gather”,但我还是没有得到我想要的,因为我最终复制了原始数据集(使用字符串变量而不是 1 和 0)。
任何想法,我怎样才能获得我想要的数据?
非常感谢!