任何人都可以帮助我解决使用 R 创建特定时间段内先前事件总和的问题吗?如果我不遵守协议,我深表歉意,这是我的第一个问题。
我有一系列 ID 和活动日期。在真正的 df 中,事件是日期时间,但为了让事情更简单,我在这里使用了日期。
我正在尝试创建一个变量,该变量是过去 2 年内该 ID 号(或 750 天,因为我不太关心闰年,但将其考虑在内)的先前事件数量的统计。
还有一个额外的问题,即某些 ID 在同一日期(以及真实 df 中的时间)会发生多个事件。我不想删除这些,因为在真实的 df 中还有一个不一定相同的附加变量。但是,总的来说,我想将同一日期发生的事件计数为一个事件,即,如果 ID 只有 2 个事件,但它们发生在同一天,则结果将为 0,或者前一个事件中可能有 3 行日期ID 为 2 年 - 但由于两个日期相同,因此结果为 2。我创建了一个结果向量,以给出 ID 7 有这样的示例后我所拥有的示例。
如果之前的 3 个事件都发生在同一天,则结果总和将为 1,并且 2 年内的任何后续事件
ID <- c(10,1,11,2,2,13,4,5,6,6,13,7,7,7,8,8,9,9,9,10,1,11,2,11,12,9,13,14,7,15,7)
event.date<-c('2018-09-09','2016-06-02','2018-08-20', '2018-11-03', '2018-07-10', '2017-03-08', '2018-06-16', '2017-05-20', '2016-04-02', '2016-07-27', '2018-07-15', '2018-06-15', '2018-06-15', '2018-01-16', '2017-10-07', '2016-08-17','2018-08-01','2017-01-22','2016-08-05', '2018-08-13', '2016-11-28', '2018-11-24','2016-06-01', '2018-03-26', '2017-02-04', '2017-12-01', '2016-05-16', '2017-11-25', '2018-04-01', '2017-09-21', '2018-04-01')
df<-data.frame(ID,event.date)
df<-df%>%
arrange(ID,event.date)
结果列应该看起来像这样。
event.count <- c(0,1,0,0,1,0,0,0,1,0,1,1,2,2,0,1,0,1,2,3,0,1,0,1,2,0,0,1,1,0,0)
df$event.count<-event.count
我尝试了各种 if else 和使用 lag() 但无法得到我想要的
谢谢。