我对一组受试者进行了问卷调查。有些问题是单一选择,有些则是多项选择。它们存储在data.frame中,如第一个所示(用户ID,问题ID,答案ID):
usua_rut preg_codigo resp_correlativo 1 1 1 2 1 2 3 1 1 4 1 2 5 1 1 1 2 1 1 2 2 2 2 2 2 2 3 3 2 3 4 2 3 5 2 4
以下是创建它的代码:
data.plot<-data.frame(usua_rut=c(1:5,1,1,2,2,3:5),
preg_codigo=c(rep(1,5),rep(2,7)),
resp_correlativo=c(1,2,1,2,1,1,2,2,3,3,3,4))
我们的想法是使用如下的data.frame来绘制结果:
usua_rut preg_codigo.1 preg_codigo.2 1 1 1+2 2 2 2+3 3 1 3 4 2 3 5 1 4
在这种情况下,为了在我们所有的情节中保持相同数量的响应者,我们需要创建新的&#34;仿真&#34;第二个问题的类别(例如&#34; 1 + 2&#34;)。我们将在第一个问题的条形图中使用第二个问题作为分组因子。
我尝试使用dcast
,但sum
agregator会这样做:它总结。所以,我1+2
而不是3
。我使用了aggregate
函数,但它一次只能运行一个preg_codigo
。
提前感谢您的帮助。
答案 0 :(得分:1)
基于1
的快速而肮脏的答案:
aggregate
然而,我试图获得一个开箱即用的功能来达到这个目的。
答案 1 :(得分:1)
使用reshape2包中的dcast:
dcast(data.plot, usua_rut ~ preg_codigo, fun.agg = paste, collapse="+")
usua_rut 1 2
1 1 1 1+2
2 2 2 2+3
3 3 1 3
4 4 2 3
5 5 1 4