【发布时间】:2015-03-21 05:07:50
【问题描述】:
我有一些看起来像这样的数据:
head(data1[,1:5])
eid created class_id min.e.event_time. lead_date
2610966 284546 2015-03-19 11:21:17 36 2015-03-19 11:21:17 NULL
2610972 284554 2015-03-19 12:37:19 36 2015-03-19 12:37:19 NULL
2610973 284554 2015-03-19 12:37:19 36 2015-03-19 12:37:19 NULL
2610975 284558 2015-03-19 14:18:43 36 2015-03-19 14:18:43 NULL
2610976 284558 2015-03-19 14:18:43 36 2015-03-19 14:18:43 NULL
2610977 284558 2015-03-19 14:18:43 36 2015-03-19 14:18:43 NULL
这是一个事件表,eid 是一个用户 ID。每一行都是该用户经历事件的一个实例。
我想要每个用户的事件计数:
eid_email <- aggregate(data1$eid, list(data1$eid), function(x) length(x))
这似乎有效。太好了。
但我需要添加一个条件。我需要计算每个用户的事件,就像上面一样,只有 event_time 小于lead_date。
当我输入 help(aggregate) 时,手册说有一个子集参数可以与 aggregate() 一起使用。我可以这样使用这个参数吗?
如何将条件应用于我的聚合函数?如果那不可能是他们的另一种方式吗?
** STR data1 跟随评论 **
str(data1)
'data.frame': 1906721 obs. of 10 variables:
$ eid : int 45 45 45 45 45 45 45 45 45 45 ...
$ created : Factor w/ 36204 levels "0000-00-00 00:00:00",..: 1 1 1 1 1 1 1 1 1 1 ...
$ class_id : int 36 36 36 36 36 36 36 36 36 36 ...
$ min.e.event_time.: Factor w/ 16175 levels "2013-04-15 11:17:19",..: 10025 10025 10025 10025 10025 10025 10025 10025 10025 10025 ...
$ lead_date : Factor w/ 11199 levels "2012-10-11 18:39:12",..: 11199 11199 11199 11199 11199 11199 11199 11199 11199 11199 ...
$ camp : int 98713 59020 75796 99195 76986 57986 54062 80420 55078 70800 ...
$ event_date : Factor w/ 695747 levels "2008-01-18 12:18:01",..: 71975 27451 45235 72491 48792 24606 20021 52261 32169 57764 ...
$ event : Factor w/ 3 levels "click","open",..: 3 3 3 3 3 1 3 2 2 3 ...
$ message_name : Factor w/ 2707 levels ""," 2015-03 CAD Promotion Update",..: 1570 2624 1970 1881 1973 1931 1919 1983 2391 2045 ...
$ subject_lin : Factor w/ 2043 levels ""," Christie Office Holiday Hours",..: 311 952 318 309 495 1450 520 298 1333 750 ...
【问题讨论】:
-
您能为您的数据框提供
dput吗? -
如果您使用
with和聚合的子集 outside,这可能会更容易:with(mtcars, aggregate(mpg, list(gear), length)); with(mtcars[mtcars$mpg < 30, ], aggregate(mpg, list(gear), length)) -
感谢您的评论。我试过这个: with(data1[data1$created
标签: r conditional-statements aggregate