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"