我正在尝试计算平均等待时间。一个小时的数据间隔捕获一天中的时间、一周中的哪一天等对等待时间的影响。我的数据帧的头是:
Request Dispatch Arrival Source Dest Total.Time Wait.Time Travel.Time path
1 6/11/2021 0:00 2021-06-11 00:00:00 6/11/2021 0:01 99 63 82 0 82 99_63
2 6/11/2021 0:01 2021-06-11 00:01:00 6/11/2021 0:02 23 13 90 0 90 23_13
3 6/11/2021 0:01 2021-06-11 00:01:00 6/11/2021 0:02 35 911 96 0 96 35_911
4 6/11/2021 0:01 2021-06-11 00:01:00 6/11/2021 0:02 23 81 88 24 64 23_81
5 6/11/2021 0:00 2021-06-11 00:00:00 6/11/2021 0:03 89 35 163 1 162 89_35
6 6/11/2021 0:01 2021-06-11 00:01:00 6/11/2021 0:03 36 309 95 1 94 36_309
使用lubrigate,我通过以下代码行将数据划分为小时桶:
tube$Dispatch <- mdy_hm(tube$Dispatch)
tube_top3 <- data.frame(table(cut(tube$Dispatch,breaks = "hour")))
names(tube_top3)[1] <- "DateTime"
names(tube_top3)[2] <- "Count"
下面是新的数据头。第三天的专栏只是我添加的内容,通过概述午夜水桶,使ggplot变得更好。
DateTime Count day3
1 2021-06-11 00:00:00 302 yes
2 2021-06-11 01:00:00 209 no
3 2021-06-11 02:00:00 189 no
4 2021-06-11 03:00:00 169 no
5 2021-06-11 04:00:00 168 no
6 2021-06-11 05:00:00 234 no
我想计算的是上面原始数据帧的平均等待时间,但对于剪切数据帧中的小时桶。
您可以尝试以下操作-
library(dplyr)
library(lubridate)
tube_top3 <- tube %>%
mutate(Dispatch = mdy_hm(Dispatch),
hour_break = cut(Dispatch, 'hour')) %>%
group_by(hour_break) %>%
summarise(Count = n(),
Avg_wait_time = mean(Wait.Time, na.rm = TRUE))