我有data.frame
个帖子如下:
post_id group_id hour(when posted) likes
1 1 13 5
2 1 13 6
3 1 23 3
4 2 12 30
5 2 13 34
6 2 22 10
我想在每个小组中按小时绘制喜欢分布的内容,所以我需要像这样的data.frame
:
0 ... 12 13 ... 22 23 <- hours
gorup#1 0 11 3 <- sum of likes in group#i in xx hour
group#2 30 34 10 0
如何按小组和按小时分组?
答案 0 :(得分:1)
假设您的data.frame
被称为“mydf”,也许您可以尝试xtabs
(因为您只是在寻找sum
):
> xtabs(likes ~ group_id + hour, mydf)
hour
group_id 12 13 22 23
1 0 11 0 3
2 30 34 10 0
要获得“小时”的所有级别,即使所有组的总和为“0”,也要先{“1}}”小时“列。
另一个方便的替代方法是使用“reshape2”包中的factor
。