ordenar numero manipulacion hora fechas fecha extraer convertir r date datetime rounding posixct

numero - Redondee una fecha POSIX(POSIXct) con funcionalidad base R



posixct to date r (2)

Actualmente estoy jugando mucho con fechas y horas para un paquete que estoy construyendo.

Al tropezar con esta post , nuevamente me recordó que generalmente no es una mala idea comprobar si se puede hacer algo con las funciones básicas de R antes de recurrir a los paquetes contrib.

Por lo tanto, ¿es posible redondear una fecha de la clase POSIXct con funcionalidad base R?

lo comprobé

methods(round)

el cual "solo" me dio

[1] round.Date round.timeDate* Non-visible functions are asterisked

Esto es lo que me gustaría hacer (Pseudo Código)

x <- as.POSIXct(Sys.time()) [1] "2012-07-04 10:33:55 CEST" round(x, atom="minute") [1] "2012-07-04 10:34:00 CEST" round(x, atom="hour") [1] "2012-07-04 11:00:00 CEST" round(x, atom="day") [1] "2012-07-04 CEST"

Sé que esto se puede hacer con timeDate , timeDate , etc., pero me gustaría mantener lubridate dependencias de los paquetes. Así que antes de seguir adelante y revisar el código fuente de los paquetes respectivos, pensé en preguntar si alguien ya había hecho algo como esto.


En este tema con lubridate , también mire las ceiling_date() y floor_date() :

x <- as.POSIXct("2009-08-03 12:01:59.23") ceiling_date(x, "second") # "2009-08-03 12:02:00 CDT" ceiling_date(x, "hour") # "2009-08-03 13:00:00 CDT" ceiling_date(x, "day") # "2009-08-04 CDT" ceiling_date(x, "week") # "2009-08-09 CDT" ceiling_date(x, "month") # "2009-09-01 CDT"


base tiene round.POSIXt para hacer esto. No estoy seguro de por qué no viene con methods .

x <- as.POSIXct(Sys.time()) x [1] "2012-07-04 10:01:08 BST" round(x,"mins") [1] "2012-07-04 10:01:00 BST" round(x,"hours") [1] "2012-07-04 10:00:00 BST" round(x,"days") [1] "2012-07-04"