0
我想根据值条件提取行,然后在该行之前的任何行。举个例子下面的示例:基于值和与另一行的邻近度提取行?
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)
假设每个工人的日期之间的差异是在几秒钟内,我将如何提取的行,显示900的diff
一个秒,并且另外任何行的邻近,来在之前呢?