web-dev-qa-db-fra.com

Ajout de temps à l'objet POSIXct dans R

Je voudrais ajouter 1 heure à un objet POSIXct, mais il ne prend pas en charge "+".

Cette commande:

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

renvoie cette erreur:

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

Comment ajouter quelques heures à un objet POSIXct?

46
BlueTrin

POSIXct les objets sont une mesure de secondes à partir d'une origine, généralement l'époque UNIX (1er janvier 1970). Ajoutez simplement le nombre de secondes requis à l'objet:

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

Le package lubridate l'implémente également très bien avec les fonctions pratiques hours, minutes, etc.

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