Tidyr

时间:2017-09-01 12:02:30

标签: r tidyr

我正在研究512个变量的调查数据。变量的数量很大,因为每个受访者为多个品牌回答相同的问题。因此,每个变量,例如“偏好”都有20列,对于每个品牌,受访者都可能知道。我想要一个额外的专栏,这是品牌,我还没有管理它。

我应用了tidyr包,这对第一组变量非常有效:

TestSet100<-as.data.frame(TestSet100)
TestSet100$ID <- factor(TestSet100$ID)
Test_long<-reshape(TestSet100long, varying=c(unaided_b1:unaided_b20), direction="long", idvar= "ID", sep="_")

结果正是我所需要的。但是,一旦我从下一个开始就出错了:

TestSet100long3<-gather(TestSet100long, brand, aided_awareness, aided_b1:aided_b20, factor_key=T)

因为它增加了:品牌unaided_awareness,品牌aided_awareness,而不是一个具有可变品牌的列,两个具有unaided_awareness和aided_awareness。

但是对于第三个,它完全错了,因为那样结果就是错误。

TestSet100long4<-gather(TestSet100long3, brand, familiarity, fami_b1:fami_b20, factor_key=T)
Error: is_dictionaryish(x) is not TRUE

1 个答案:

答案 0 :(得分:0)

heroku/nodejs包中试用dcast。有关详细信息,请参阅An introduction to reshape2。 在这篇博客文章的底部有一个很好的视觉表,蓝色/红色突出显示很好地解释了逻辑