我有一个数据框,其中有一堆数据,这些数据在行的某些元素中用逗号连接。看起来像这样的东西:
df <- data.frame(
c(2012,2012,2012,2013,2013,2013,2014,2014,2014)
,c("a,b,c","d,e,f","a,c,d,c","a,a,a","b","c,a,d","g","a,b,e","g,h,i")
)
names(df) <- c("year", "type")
我想以一种形式得到它dcast
接近得到它,年份、a、b、c 等是列,数据帧中的频率位于结果数据帧的单元格中。我首先尝试做colsplit
on df
然后使用dcast
之后,但这似乎只有在我想聚合其中一个级别而不是所有级别时才有效。
df2 <- data.frame( df$year, colsplit(df$type, ',' , c('v1','v2','v3','v4','v5')) )
df3 <- dcast(df2, df.year ~ v1)
这个结果只给了我第一级colsplit
,而不是全部。我是否已经接近解决方案了,还是应该使用完全不同的方法?