【发布时间】:2016-10-07 16:35:22
【问题描述】:
我是 R 的新手,我有一个包含客户编号和数千个事件日期的数据集。数据格式如下:
data <- data.frame("Client"=c(rep(1, 4), rep(2, 3), rep(3, 2)), "Date"=as.Date(c("2015-11-20", "2015-12-04", "2016-01-08", "2016-04-07", "2015-12-19", "2016-02-02", "2016-02-21", "2016-01-04", "2016-02-12")), "Event"=rep(1, 9))
data
Client Date Event
1 1 2015-11-20 1
2 1 2015-12-04 1
3 1 2016-01-08 1
4 1 2016-04-07 1
5 2 2015-12-19 1
6 2 2016-02-02 1
7 2 2016-02-21 1
8 3 2016-01-04 1
9 3 2016-02-12 1
给定一组参考日期,
refdates <- as.Date(c("2016-01-01", "2016-03-01"))
我想计算每个客户发生的事件数 (1) 参考日期后 30 天,(2) 参考日期前 0-30 天,以及 (3) 参考日期前 31-60 天对于参考日期集。
我希望输出是如下所示的数据框:
Client RefDate post30 prior30 prior31.60
1 1 2016-01-01 1 1 1
2 1 2016-03-01 0 0 1
3 2 2016-01-01 0 1 0
4 2 2016-03-01 0 2 0
5 3 2016-01-01 1 0 0
6 3 2016-03-01 0 1 1
我觉得我应该能够使用 plyr 来做到这一点,但我感觉有点过头了。请有人指出我正确的方向吗?
【问题讨论】: