【发布时间】:2017-01-08 19:56:34
【问题描述】:
之前问过类似的问题,得到了很大的帮助:R: Aggregating History By ID By Date
不同之处在于,对于前一篇文章,我有兴趣汇总所有历史信息,但现在我希望仅指定 90 天前的信息。
以下是我的数据的外观示例:
strDates <- c("09/09/16", "5/7/16", "5/6/16", "2/13/16", "2/11/16","1/7/16",
"11/8/16","6/8/16", "5/8/16","2/13/16","1/3/16", "1/1/16")
Date<-as.Date(strDates, "%m/%d/%y")
ID <- c("A", "A", "A", "A","A", "A", "B","B","B","B","B", "B")
Event <- c(1,0,1,0,1,1, 0,1,1,1,0, 1)
sample_df <- data.frame(Date,ID,Event)
以及输出:
背景信息
我想保留每次遭遇的所有附加信息,然后按 id 将以下历史信息汇总回 90 天。
- 过去 90 天内的先前遭遇次数
- 过去 90 天内的先前事件数
示例
以第 2 行为例。
第 2 行是 ID A,因此我将引用第 3-6 行(发生在第 2 行遭遇之前)。在这组行中,我们看到第 3、4、5 行以及所有行都发生在过去 90 天内,第 6 行发生在感兴趣的时间之外。
过去 90 天内从第 2 行开始的遭遇次数:3 次遭遇
第 2 行过去 90 天内的先前事件数:2 个事件(2016 年 5 月 6 日和 2016 年 2 月 11 日)
期望的输出
理想情况下,我会得到以下输出:
【问题讨论】:
标签: r data.table dplyr