2012-08-12 32 views
22

Tôi muốn thêm 1 giờ vào đối tượng POSIXct, nhưng nó không hỗ trợ '+'.Thêm thời gian vào đối tượng POSIXct trong R

lệnh này:

as.POSIXct("2012/06/30","GMT") 
    + as.POSIXct(paste(event_hour, event_minute,0,":"), ,"%H:%M:$S") 

lợi nhuận lỗi này:

Error in `+.POSIXt`(as.POSIXct("2012/06/30", "GMT"), as.POSIXct(paste(event_hour, : 
    binary '+' is not defined for "POSIXt" objects 

Làm thế nào tôi có thể thêm một vài giờ đến một đối tượng POSIXct?

Trả lời

46

POSIXct đối tượng là thước đo giây từ nguồn gốc, thường là kỷ nguyên UNIX (ngày 1 tháng 1 năm 1970). Chỉ cần thêm số lượng cần thiết của giây để các đối tượng:

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" 
+0

Tôi chỉ hiểu điều này cùng một lúc hơn tôi đọc câu hỏi của bạn: D, cảm ơn bạn đã trả lời! – BlueTrin

33

Gói lubridate cũng thực hiện điều này độc đáo với các chức năng thuận tiện hours, minutes vv

x = Sys.time() 
library(lubridate) 
x + hours(3) # add 3 hours 
Các vấn đề liên quan