Не уверен, что если я вас правильно интерпретирую, вы можете преобразовать отметку времени в класс POSIXct, затем добавить 3 минуты в PREV_TIME_STAMP и отфильтровать для этих TIME_STAMP более 3 минут после PREV_TIME_STAMP
DT[TIME_STAMP >= PREV_TIME_STAMP + 3*60]
или используя difftime
DT[difftime(TIME_STAMP, PREV_TIME_STAMP, units="mins") > 3]
выход:
# TIME_STAMP PREV_TIME_STAMP UniqueID
# 1: 2021-06-27 07:07:22 2021-06-27 06:30:00 1
# 2: 2021-06-27 04:38:55 2021-06-27 04:21:31 1
# 3: 2021-06-27 05:05:26 2021-06-27 02:55:00 1
# 4: 2021-06-27 14:32:39 2021-06-27 12:30:00 1
# 5: 2021-06-27 14:42:13 2021-06-27 14:32:39 1
# 6: 2021-06-27 15:18:05 2021-06-27 15:11:00 2
# 7: 2021-06-27 12:35:05 2021-06-27 12:30:00 2
данные:
library(data.table)
DT <- fread("TIME_STAMP,PREV_TIME_STAMP,UniqueID
06-27-2021 07:07:22,06-27-2021 06:30:00,1
06-27-2021 04:38:55,06-27-2021 04:21:31,1
06-27-2021 05:05:26,06-27-2021 02:55:00,1
06-27-2021 14:32:39,06-27-2021 12:30:00,1
06-27-2021 14:42:13,06-27-2021 14:32:39,1
06-27-2021 15:18:05,06-27-2021 15:11:00,2
06-27-2021 15:19:05,06-27-2021 15:18:05,2
06-27-2021 12:31:37,06-27-2021 12:30:00,2
06-27-2021 12:35:05,06-27-2021 12:30:00,2")[, ':=' (
TIME_STAMP = as.POSIXct(TIME_STAMP, format="%m-%d-%Y %H:%M:%S"),
PREV_TIME_STAMP = as.POSIXct(PREV_TIME_STAMP, format="%m-%d-%Y %H:%M:%S")
)]