我有一个这样的数据框:
date time userid status
1 02/25/2012 09:22:10 aabc logged_in
2 02/25/2012 09:30:10 aabc logged_out
3 02/25/2012 09:29:20 abbc logged_out
4 02/25/2012 09:27:30 abc logged_in
5 02/25/2012 09:26:29 abc login_failed
6 02/25/2012 09:26:39 abc login_failed
7 02/25/2012 09:26:52 abc login_failed
8 02/25/2012 09:27:09 abc login_failed
9 02/25/2012 09:27:20 abc login_failed
10 02/25/2012 09:24:10 abdc logged_in
11 02/25/2012 09:24:12 abdc logged_out
12 02/25/2012 09:22:10 abhc logged_in
13 02/25/2012 09:30:10 abuc logged_in
14 02/25/2012 09:30:14 abuc logged_out
15 02/25/2012 09:29:40 baa logged_in
我想要每个用户标识的 login_failures 的用户标识、状态和“计数”。我这样做了:
ddply(mytbl, c('userid', 'status'), function(x) c(count=nrow(x)))
,但这给出了所有用户标识的计数。我想将我的输出限制为仅那些状态为“login_failed”的用户标识。有任何想法吗?我见过有关按数字字段分组的问题,但没有看到有关字符串的问题。
我对 plyr 的所有功能都不是很熟悉。很高兴看到如何使用汇总、聚合、sqldf、data.table 等来完成此操作。慢慢了解它们中的每一个。
谢谢斯里