我有一个名为A的data.frame,如下所示:
uid uname csttime action_type
1 felix 2014-01-01 01:00:00 1
1 felix 2014-01-01 02:00:00 2
1 felix 2014-01-01 03:00:00 2
1 felix 2014-01-01 04:00:00 2
1 felix 2014-01-01 05:00:00 3
2 john 2014-02-01 01:00:00 1
2 john 2014-02-01 02:00:00 1
2 john 2014-02-01 03:00:00 1
2 john 2014-02-02 08:00:00 3
.......
我想统计每个<uid,uname,csttime>
组合的历史action_type,例如,对于<1,'felix','2014-01-01 03:00:00'>
,我想知道有多少action_types
曾发生过。对于<1,'felix','2014-01-01 03:00:00'>
,action_type_1
为1,action_type_2
为1。
答案 0 :(得分:3)
如果我正确理解你的问题,我相信有一个相当简单的dplyr答案。
library(dplyr)
group_by(stack, uid, uname, csttime) %>%
count(uid, action_type)
这将产生:
uid action_type n
1 1 1 1
2 1 2 3
3 1 3 1
4 2 1 3
5 2 3 1
正如您所看到的,它为您提供了每个唯一ID,它们所采取的动作类型以及次数。如果你想说,改为包括日期,你可以做
group_by(stack, uid, uname, csttime) %>%
count(uid, csttime, action_type)
希望有所帮助。