1
介绍“好”游:一个分组数据框的时间用dplyr
我想大约5分钟的数据聚合成10分钟数据。具体来说,我只想汇总10分钟的标记(00:10:00,00:20:00,00:30:00等)。
下面的代码几乎可以达到此目的,但休息时间为5分钟而非10分钟时间(00:05:00,00:15:00,00:25:00)。我认为dplyr
在确定分界点时正在使用数据框中的第一行。
有什么方法可以使用cut {base}
和group_by() {dplyr}
来实现“漂亮”的10分钟休息吗?我只需删除第一行数据即可,但我确实需要解决方案来管理许多不同的文件,每个文件都有独特的起点。
提前致谢!
例如代码:
date <- c("2017-06-14 14:35:00", "2017-06-14 14:40:00", "2017-06-14 14:45:00", "2017-06-14 14:50:00")
co <- as.numeric(c(5.17,10.07,13.88,13.78))
no <- as.numeric(c(34.98,32.45,31.34,29.09))
no2 <- as.numeric(c(0.00,0.00,0.00,0.00))
o3 <- as.numeric(c(5.17,10.07,13.88,13.78))
data <- data.frame(date, co, no , no2, o3)
data$date <- strptime(data$date, format = "%Y-%m-%d %H:%M")
data$date <- as.POSIXct(data$date)
head(data)
data_10min <- data %>%
group_by(date = cut(date, breaks = "10 min")) %>%
summarize(co = mean(co), no = mean(no), no2 = mean(no2), o3 = mean(o3))
head(data_10min)
所需的输出:
2017-06-14 14:40:00
2017-06-14 14:50:00
谢谢!这足以满足我需要做的事情。 – spacedSparking