【发布时间】:2016-11-10 17:01:15
【问题描述】:
我有一个 data.table,其中列出了用户 ID、周数、用户做了某事的事实(已处理,0 或 1)和一个我只是用来计算我有多少值的列,称为 HowMany :
data <- data.table(WeekNumber=c(33,33,33,34,34,33,33,34,34),
User=c(1,1,1,1,1,2,2,2,2),
Processed=c(1,1,0,0,1,0,1,0,1),
HowMany=c(1,1,1,1,1,1,1,1,1))
我想找出每周完成和未完成的事情的总和,所以我做了这样的事情:
> dcast(setDT(data), WeekNumber~Processed, value.var="HowMany", sum)
WeekNumber 0 1
1: 33 2 3
2: 34 2 2
现在我想找出每周完成和未完成的事情的平均数量,所以在这种情况下,我之前还必须按用户进行汇总,但我在这一步失败了:
> dcast(setDT(data), WeekNumber~Processed+User, value.var="HowMany", mean)
WeekNumber 0_1 0_2 1_1 1_2
1: 33 1 1 1 1
2: 34 1 1 1 1
而我的最佳结果是:
WeekNumber 0 1
33 1 1.5
34 1 1
【问题讨论】:
-
好的,你想要的输出来自
table,比如data[, table(WeekNumber, Processed)/uniqueN(WeekNumber)] -
@Frank 谢谢,你会写这个作为答案让我接受吗?
-
也许它可以作为一个旧问题的欺骗而被关闭,而不是像stackoverflow.com/q/25293045
-
我不明白为什么它因为不清楚而被搁置? @Frank 你正确回答了我编辑的问题......你仍然认为它不清楚吗?
-
不,我认为现在还不清楚。我收回了我的投票,但无法重新投票以将其关闭(因为我不能投票两次)。
标签: r data.table reshape2 dcast