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

2 ответов


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"

на lubridate пакет также реализует это красиво с функциями удобства hours, minutes, etc.

x = Sys.time()
library(lubridate)
x + hours(3) # add 3 hours