You can use floor_date
/ceiling_date
from lubridate
library(dplyr)
library(lubridate)
df <- data.frame(time = Sys.time() + sample(100000, 10))
df %>%
mutate(interval = hour(floor_date(time, '2 hours')),
interval1 = paste(interval, interval + 2, sep = '-'),
interval2 = sprintf('[%d, %d)', interval, interval + 2, sep = '-'))
# time interval interval1 interval2
#1 2021-06-07 13:14:15 12 12-14 [12, 14)
#2 2021-06-07 14:57:42 14 14-16 [14, 16)
#3 2021-06-06 23:42:58 22 22-24 [22, 24)
#4 2021-06-07 07:11:57 6 6-8 [6, 8)
#5 2021-06-08 01:20:38 0 0-2 [0, 2)
#6 2021-06-07 17:51:25 16 16-18 [16, 18)
#7 2021-06-07 16:15:47 16 16-18 [16, 18)
#8 2021-06-07 11:29:56 10 10-12 [10, 12)
#9 2021-06-07 16:59:13 16 16-18 [16, 18)
#10 2021-06-07 11:47:07 10 10-12 [10, 12)
Collected from the Internet
Please contact [email protected] to delete if infringement.
Comments