给定时间列,如何在R中创建时间段?

时间:2018-03-27 14:50:13

标签: r datetime dplyr lubridate

给出一个说3列的数据框:

date       time    respond 
1/1/2018   15:40   1
4/5/2017   08:25   0
3/4/2016   09:00   1
5/4/2017   09:25   1

....

我想将我的时间栏分成24个箱子 - 对于我们每个人,如果我有50个样品,我希望所有时间在1小时到2小时之间(08:00 - 09:00)代表箱子的08:00小时等。

现在,当我实现这一目标时,我想计算每个垃圾箱里有多少响应者:

bin08:00 = 10个响应者 bin09:00 = 134响应者

并使用ggplot2绘制它。

另外请指导我如何创建不同的bin map: 从08:00到12:00 AM - 每小时箱。 每隔15分钟上午12:00 - 15:00

请指导我如何做到这一点。

@akrun

1 个答案:

答案 0 :(得分:1)

执行此操作的一种方法是使用strptimetime列格式化为POSIX对象,然后对这些对象使用format向下舍入到小时,如下所示:< / p>

library(dplyr)

df$hour <- format(strptime(df$time, "%H:%M"), "%H:00")

df %>% group_by(hour) %>% summarize(respond = sum(respond))

# # A tibble: 3 x 2
#    hour respond
#   <chr>   <int>
# 1 08:00       0
# 2 09:00       2
# 3 15:00       1