Добавление времени к объекту POSIXct в R
Я хотел бы добавить 1 час к объекту POSIXct, но он не поддерживает "+".
Эта команда:
as.POSIXct("2012/06/30","GMT")
+ as.POSIXct(paste(event_hour, event_minute,0,":"), ,"%H:%M:$S")
возвращает эту ошибку:
Error in `+.POSIXt`(as.POSIXct("2012/06/30", "GMT"), as.POSIXct(paste(event_hour, :
binary '+' is not defined for "POSIXt" objects
Как я могу добавить несколько часов к объекту POSIXct?
Ответы
Ответ 1
POSIXct
объекты - это мера секунд от начала координат, обычно эпоха UNIX (1 января 1970 года). Просто добавьте необходимое количество секунд в объект:
x <- Sys.time()
x
[1] "2012-08-12 13:33:13 BST"
x + 3*60*60 # add 3 hours
[1] "2012-08-12 16:33:13 BST"
Ответ 2
Пакет lubridate
также прекрасно реализует это с помощью удобных функций hours
, minutes
и т.д.
x = Sys.time()
library(lubridate)
x + hours(3) # add 3 hours