有了新的数据集,看起来应该是1700,而不是1800
library(dplyr)
library(purrr)
library(lubridate)
Data %>%
mutate(Time = dmy_hms(Time),
grp = cumsum(Time - lag(Time, default = Time[1L])> 1700)) %>%
split(.$grp) %>%
map(~ .x %>%
select(-grp))
#$`0`
# Time temp
#1 2017-01-07 13:45:34 56
#2 2017-01-07 13:45:37 68
#3 2017-01-07 13:45:39 98
#4 2017-01-07 13:45:40 99
#5 2017-01-07 13:45:46 97
#$`1`
# Time temp
#6 2017-01-07 14:16:29 48
#7 2017-01-07 14:16:30 78
#8 2017-01-07 14:16:31 66
#9 2017-01-07 14:17:34 93
#10 2017-01-07 14:17:39 98
#11 2017-01-07 14:17:40 98
#12 2017-01-07 14:17:44 93
#$`2`
# Time temp
#13 2017-01-07 14:47:10 54
#14 2017-01-07 14:47:12 67
#15 2017-01-07 14:47:16 69
#16 2017-01-07 14:47:18 95
#17 2017-01-07 14:47:19 95
#18 2017-01-07 14:47:23 96
#19 2017-01-07 14:47:28 96
#20 2017-01-07 14:47:30 99
类似选项
base R
可能是
split(Data, cumsum(c(0, diff(as.POSIXct(Data$Time,
format = "%d/%m/%y %H:%M:%S", tz = 'GMT'))) > 1700))