我正在尝试将数据拆分为 5 秒的时间间隔,并使用 dplyr 对它们进行分组。
以下是我的原始数据 - 我在单独的列中有日期和时间,后来我使用 Posixct 组合
structure(list(Date = c("10/30/2013", "10/30/2013", "10/30/2013",
"10/30/2013", "10/30/2013", "10/30/2013", "10/30/2013", "10/30/2013",
"10/30/2013", "10/30/2013", "10/30/2013", "10/30/2013", "10/30/2013",
"10/30/2013", "10/30/2013"), Time = c("20:06:57", "20:07:13",
"20:07:25", "20:07:30", "20:08:16", "20:08:17", "20:08:26", "20:09:05",
"20:09:06", "20:09:07", "20:09:37", "20:09:38", "20:09:55", "20:12:34",
"20:14:15"), ID = c("M1", "M1", "M1", "M3", "M1", "M1", "M8",
"M9", "M9", "M9", "M1", "M1", "M1", "M5", "M1")), .Names = c("Date",
"Time", "ID"), class = "data.frame", row.names = c(NA, -15L))
在下面附上我的代码
data$datetime <- as.POSIXct(paste(data$Date, data$Time), format="%m/%d/%Y %H:%M:%S")
data_order <- data %>% arrange(datetime,ID)
data_order$group <- data_order %>% group_by(by5sec=cut(datetime, breaks= "5 secs",right =T),ID) %>% group_indices()
虽然有些观察结果是正确的,但有些是错误的。我尝试了 2 个版本 - 删除“right=T”并保留它,我得到了不同的组,但两个版本都有错误。我也尝试过使用 as.numeric,as.posixct 等等,但都是徒劳的
附加两个版本的输出。红色的被错误地编码为 2 个不同的组。
****版本 1 "right = T" 用于剪切****
****第 2 版“右 = F” 用于剪切****
有人可以帮忙解决这个问题吗,我已经花了很长时间了,鉴于我对 R 的了解,这简直是一场追逐。我想要的只是相同 ID 的 5 秒休息时间(组应该更改为新 ID)。
期望的输出