使用Tidyr从宽到长格式

使用Tidyr从宽到长格式,r,tidyr,R,Tidyr,我正在处理512个变量的调查数据。变量数量很大,因为每个受访者对多个品牌回答相同的问题。因此,每个变量,例如“偏好”有20列,对于受访者可能知道的每个品牌。我想要一个额外的专栏,这是品牌,我还没有管理这个 我应用了tidyr包,这对于第一组变量非常有效: TestSet100<-as.data.frame(TestSet100) TestSet100$ID <- factor(TestSet100$ID) Test_long<-reshape(TestSet100long, v

我正在处理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="_")

TestSet100Try
dcast
from
restrape2
package。有关更多详细信息,请参阅。 在这篇博文的底部有一个漂亮的视觉表格,上面有蓝色/红色的强光,很好地解释了逻辑

你能提供一个数据集的详细信息吗?这将使我们更容易对您的代码进行故障排除。
TestSet100long3<-gather(TestSet100long, brand, aided_awareness, aided_b1:aided_b20, factor_key=T)
TestSet100long4<-gather(TestSet100long3, brand, familiarity, fami_b1:fami_b20, factor_key=T)
Error: is_dictionaryish(x) is not TRUE