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

给定时间列,如何在R中创建时间箱?,r,datetime,dplyr,lubridate,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小时的箱子,等等 现在,当我实现这一目标时,我想计算一下每个垃圾箱中有多少响应

给定一个包含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地图: 从08:00到12:00上午-每小时垃圾箱。 每15分钟12:00-15:00一次垃圾箱等

请指导我如何才能做到这一点


@akrun

一种方法是使用
strtime
time
列格式化为POSIX对象,然后在这些对象上使用
format
将时间四舍五入为小时,如下所示:

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   
库(dplyr)
df$hour%group_by(hour)%%>%summary(respond=sum(respond))
##tibble:3 x 2
#小时响应
#      
# 1 08:00       0
# 2 09:00       2
# 3 15:00       1