Я пытаюсь извлечь строки на основе условия значения, а затем любую строку, которая предшествует этой строке. Возьмем в качестве примера следующий образец:Извлечение строк на основе значения и близости к другой строке?
library(data.table)
latemail <- function(N, st="2012/01/01", et="2012/01/07") {
st <- as.POSIXct(as.Date(st))
et <- as.POSIXct(as.Date(et))
dt <- as.numeric(difftime(et,st,unit="sec"))
ev <- sort(runif(N, 0, dt))
rt <- st + ev
}
#create our data frame
set.seed(42)
dt = latemail(100000)
work = setDT(as.data.frame(dt))
work$worker = stringi::stri_rand_strings(1000, 5)
work$dt = as.POSIXct(as.character(work$dt), tz = "GMT")
#order
work = work[order(work$worker, work$dt),]
#apply difftime
options(scipen=999)
work[, time_diff:= c(NA, diff(dt)), by = worker]
work$time_diff = as.numeric(work$time_diff)
Если предположить, что различия между датами для каждого работника, чтобы быть в секундах, как бы извлечь строки, которые показывают diff
от 900 секунд, и, кроме того любая строка, которая находится рядом, приходя перед этим?