如何创建一个列,指示观察结果与R中另一个观测值的滞后?

Mat*_*agg 7 r time-series

我有一个带有布尔变量事件的数据框d,指示某个事件是否在给定日期发生.我想创建一个新变量,指示距离最近的事件有多少观察(天).

d=structure(list(date = structure(c(-365, -364, -363, -362, -361, 
-360, -359, -358, -357, -356, -355, -354, -353, -352, -351, -350, 
-349, -348, -347, -346), class = "Date"), event = c(TRUE, 
FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, 
FALSE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, 
FALSE)), .Names = c("date", "event"), row.names = c(NA, 20L
), class = "data.frame")
Run Code Online (Sandbox Code Playgroud)

有没有这样做的功能?

Dav*_*rek 5

就像是

apply(abs( sapply( which(d$event), "-", 1:nrow(d) )),1,min)
Run Code Online (Sandbox Code Playgroud)

将概括@DDin的答案超过2个TRUE值.