R将collect用于调查数据中的多个循环

问题描述

我正在处理一些稍显尴尬的调查数据。调查软件的输出格式为:

Respondent     contact1     contact2     question1     question2     question1     question2
   Tim           Bob          Alan           1             0             0             1

位置:

Contact1和contact2是被调查者可以在其中列出与之联系的个人的插槽。

然后为每个联系人循环以下固定问题集,每个问题都是一个新列。答案记录为简单的1或0。

我希望将这些数据重塑为更易于分析的布局:

Respondent     Contact    question1    question2
   Tim           Bob          1            0
   Tim           Alan         0            1

显然,这是简化的,实际的数据集有100个联系人,每个联系人大约有8个问题,但布局是相同的。

我认为最好的方法是结合使用collect(),express()和spread()

data %>%
  gather(key,value,-Respondent) %>%
  extract(key,c("question","contact"),"reg ex") %>%
  spread(question,value)

但是事实证明,不同的长度和多个触点很难对齐。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)