【发布时间】:2021-12-12 14:24:59
【问题描述】:
我有如下数据
Time <- c("2021-08-30 7:24","2021-08-30 7:30","2021-08-30 7:54","2021-08-30 8:16","2021-08-30 8:27","2021-08-30 8:22","2021-08-31 2:39","2021-08-31 2:44","2021-08-31 2:50","2021-08-31 2:56","2021-08-31 7:42","2021-08-31 7:45","2021-08-31 7:50","2021-08-31 6:02")
Distance_m <- c(162,162,162,162,162,162,162,157,150,137,122,102,78,42)
df <- data.frame(Time, Distance_m)
df
Time Distance_m
1 2021-08-30 7:24 162
2 2021-08-30 7:30 162
3 2021-08-30 7:54 162
4 2021-08-30 8:16 162
5 2021-08-30 8:27 162
6 2021-08-30 8:22 162
7 2021-08-31 2:39 162
8 2021-08-31 2:44 157
9 2021-08-31 2:50 150
10 2021-08-31 2:56 137
11 2021-08-31 7:42 122
12 2021-08-31 7:45 102
13 2021-08-31 7:50 78
14 2021-08-31 6:02 42
我想根据日期和小时以 15 分钟的间隔对 Distance_m 求和。
我期望输出如下
Date Hour Time Distance_m
2021-08-30 7 54 486
2021-08-30 8 30 486
2021-08-31 2 56 606
2021-08-31 6 2 344
到目前为止我已经尝试过
df <- tidyr::separate(df, Time, c("Date", "Time"), sep = " ")
df1<- df %>%
mutate(Time = hm(Time)) %>%
mutate(ttt= (lubridate::minute(Time) + lubridate::hour(Time) * 60)) %>%
mutate(tt = floor(ttt/15) ) %>%
group_by(tt) %>%
summarize(Date = last(Date),Time = last(Time), Distance_m = sum(Distance_m))
但是输出有点乱。我希望在处理大量数据时找到一种有效的方法。
谢谢
【问题讨论】:
-
你能简单解释一下15分钟的差异是如何计算的吗?我可以在第四行看到 6 小时 2 分钟,这是同一日期中最低的。
标签: r dplyr time-series tidyverse aggregation