Подтвердить что ты не робот

Добавление времени к объекту 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?

4b9b3361

Ответ 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