Comment arrondir une date en fonction de différentes unités ? ceilling_date, floor_date, round_date

La fonction ceilling_date(), du package lubridate, permet d’arrondir une donnée de type « date » à la date la plus grande en fonction de différentes unités :



library(lubridate)

 

x <- as.POSIXct("2009-08-03 12:01:57.23")

 

ceiling_date(x, "second")

[1] "2009-08-03 12:01:58 CEST"

#On arrondit à la seconde la plus grande

 

ceiling_date(x, "minute")

[1] "2009-08-03 12:02:00 CEST"

#On arrondit à la minute la plus grande

 

ceiling_date(x, "hour")

[1] "2009-08-03 13:00:00 CEST"

#On arrondit à l'heure la plus grande

 

ceiling_date(x, "day")

[1] "2009-08-04 CEST"

#On arrondit au jour le plus grand

 

ceiling_date(x, "week")

[1] "2009-08-09 CEST"

 

ceiling_date(x, "month")

[1] "2009-09-01 CEST"

 

ceiling_date(x, "year")

[1] "2010-01-01 CEST"

 

De même, la fonction floor_date(), permet d’arrondir une date à la date la plus petite, et la fonction round_date(), permet d’arrondir une date à la date la plus proche en fonction de différentes unités.



library(lubridate)

 

x1 <- as.POSIXct("2009-08-03 12:01:57.23")

x2 <- as.POSIXct("2009-08-03 12:42:57.23")

 

floor_date(x1, "hour")

[1] "2009-08-03 12:00:00 CEST"

#On arrondit à l'heure la plus petite

 

round_date(x1, "hour")

[1] "2009-08-03 12:00:00 CEST"

round_date(x2, "hour")

[1] "2009-08-03 13:00:00 CEST"
#On arrondit à l'heure la plus proche