R:将调查问卷中的勾选框答案编码为虚拟变量

Google表单将复选框的问题(即,可以在单个问题中打勾的多个问题)的调查答案作为单个变量输出,其中打勾的答案用分号分隔。

我现在想针对每个唯一答案将此复合变量转换为几个虚拟变量/列。即我从

开始
df$question <- c("answer1; answer2","answer1; answer3","answer2; answer3")

我想到达:

df$answer1 <- c(1,1,0) #i.e. observations 1 and 2 ticked answer 1,observation 3 didn't
df$answer2 <- c(1,1)

到目前为止,我已经通过使用tidyverse中的separate_rows()将字符串变量分离为唯一值。每个观察结果产生了多行,每行仅包含一个答案

df$question <- c("answer1","answer2","answer1","answer3","answer3")

然后,我使用model.matrix将此专栏展开为虚拟变量:

dummies_personalpl <- model.matrix( ~ personalpl - 1,data = survey_factors_personalpl)

现在,我有6个虚拟列,但是我仍然需要摆脱该过程中每列产生的其他行。在上面的示例中,观察值1将有2行,因为它产生了2个唯一的答案,但是我当然只希望有1行,被打勾的答案的虚拟对象为1。

我的方法有效吗?是否有一种较短的方法可以从原始变量中提取唯一答案并将其立即转换为虚拟变量/列,而不必每次观察将它们分散到几行中?

预先感谢, 丹尼尔

longfeimicu 回答:R:将调查问卷中的勾选框答案编码为虚拟变量

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3056466.html

大家都在问