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
一個秒,並且另外任何行的鄰近,來在之前呢?