R有可能使用dcast获取table()的输出吗?
问题描述:
我有以下的数据帧:R有可能使用dcast获取table()的输出吗?
id<-c(1,2,3,4,1,1,2,3,4,4,2,2)
period<-c("first","calib","valid","valid","calib","first","valid","valid","calib","first","calib","valid")
df<-data.frame(id,period)
在
period
id calib first valid
1 1 2 0
2 2 0 2
3 0 0 2
4 1 1 1
打字
table(df)
结果是否有任何方式使用 'dcast' 得到相同的结果,并将其保存为一个新的数据框?
答
是的,有一种方法:
library(reshape2)
dcast(df, id ~ period, length)
Using period as value column: use value.var to override.
id calib first valid
1 1 1 2 0
2 2 2 0 2
3 3 0 0 2
4 4 1 1 1
您也可以只输入dcast(df, id ~ period)
和length
将被默认得选择。正如我所看到的,你试图在你的另一个question中找到这个。没有dcast
的扩展解决方案看起来像这样:
df <- data.frame(unclass(table(df)))
df$ID <- rownames(df)
df
calib first valid ID
1 1 2 0 1
2 2 0 2 2
3 0 0 2 3
4 1 1 1 4