你可以使用
dplyr::filter()
和
dplyr::lag()
在这里假设您
time
变量采用日期时间格式:
library(dplyr)
df %>%
filter(type == "att",
(time - dplyr::lag(time)) < 15, # could also use `(difftime(time, lag(time), units = "secs")) < 15`
lag(type) == "def")
# event time type
# 1 2 2022-07-15 18:08:06 att
# 2 6 2022-07-15 18:13:36 att
数据:
df <- read.table(text = "event time type
1 '2022-07-15 18:08:05' def
2 '2022-07-15 18:08:06' att
3 '2022-07-15 18:09:00' def
4 '2022-07-15 18:09:12' def
5 '2022-07-15 18:13:26' def
6 '2022-07-15 18:13:36' att
7 '2022-07-15 18:19:05' def
8 '2022-07-15 18:21:43' def
9 '2022-07-15 18:26:06' att
10 '2022-07-15 18:27:26' def", h = TRUE)
df$time <- lubridate::as_datetime(df$time)