目前,我的代码使用以下方法返回每天发生的大量事件:
online_toy_purchases %>%
mutate(interval = lubridate::date(date)) %>%
group_by(interval) %>%
summarise(count = n())
这当前返回以下内容:
# A tibble: 31 x 2
interval count
2018-12-01 500
2018-12-02 300
2018-12-03 400
2018-12-04 200
2018-12-05 600
...
2018-12-31 100
我希望我的代码按每小时和每天分组,以获得更精细的数据视图,这将返回以下内容:
# A tibble: 744 x 2
interval count
2018-12-01 01:00:00 50
2018-12-01 02:00:00 60
2018-12-01 03:00:00 20
2018-12-01 04:00:00 80
...
2018-12-31 24:00:00 10
online_toy_purchases是一个 tibble,除其他功能外,还包含交易的 ID 和包含购买日期和小时、分钟和秒的时间戳(即 -> "2018-12-01 01:20:58")
这将计算数据每小时内的行数。
library(tidyverse)
online_toy_purchases %>%
# assuming that "date" is formatted as a datetime variable already
count(time = lubridate::floor_date(date, "1 hour")) %>%
# additional step using padr::pad to add missing hours and
# tidyr::replace_na to make NAs into zeroes
padr::pad() %>%
replace_na(list(n=0))
对于可视化和进一步分析,让行记录没有数据的周期会很有帮助。您也可以通过转换为 tsibble
来完成类似的事情。