【发布时间】:2017-01-31 10:40:07
【问题描述】:
我的df 看起来像这样:
Id Task Type Freq
3 1 A 2
3 1 B 3
3 2 A 3
3 2 B 0
4 1 A 3
4 1 B 3
4 2 A 1
4 2 B 3
我想通过Id重组并得到:
Id A B … Z
3 5 3
4 4 6
我试过了:
df_wide <- dcast(df, Id + Task ~ Type, value.var="Freq")
并收到以下警告:
缺少聚合函数:默认为长度
我不知道该在fun.aggregate 中添加什么。有什么问题?
【问题讨论】:
-
根据显示的示例,我没有收到任何警告。如果您有重复,那么您可能需要创建一个序列列
-
如果您需要
sum(基于显示的预期输出)dcast(df, Id~Type, value.var='Freq', sum) -
谢谢雅普!我不确定我是否完全理解您的解释:我的前两列(Id 和 Task)需要从两行折叠为一列。这就是我需要 fun.aggregate 函数的原因吗?如果是这样-为什么要“求和”?我不是在总结它们。
-
您能否指定收到警告消息的时间?使用
dcast(df, Id ~ Type, value.var="Freq")还是使用dcast(df, Id + Task ~ Type, value.var="Freq")?我只在使用dcast(df, Id ~ Type, value.var="Freq")时收到警告(正如我在回答中所解释的那样,这是合乎逻辑的)。 -
我在使用 'dcast(df, Id + Task ~ Type, value.var="Freq")' 时得到它。
标签: r data.table reshape reshape2