web-dev-qa-db-ja.com

RのPOSIXctオブジェクトに時間を追加する

POSIXctオブジェクトに1時間を追加したいのですが、「+」はサポートされていません。

このコマンド:

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オブジェクトに数時間を追加するにはどうすればよいですか?

46
BlueTrin

POSIXctオブジェクトは、オリジンからの秒数の測定値であり、通常はUNIXエポック(1970年1月1日)です。必要な秒数をオブジェクトに追加するだけです:

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"
74
James

lubridateパッケージも、便利な関数hoursminutesなどでこれをうまく実装しています。

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