Une heure incrément R, zoo
Question
Comment puis-je ajouter une heure à tous les éléments de l'indice d'une série de zoo?
J'ai essayé
newseries <- myzooseries
index(newseries) <- index(myzooseries)+times("1:00:00")
mais je reçois le message
Incompatible methods ("Ops.dates", "Ops.times") for "+"
Merci
Mon index est un objet chron avec la date et l'heure, mais je l'ai essayé avec des exemples simples et je ne peux pas l'obtenir
La solution
Ceci est facilement résolu en ajoutant le temps que vous voulez en mode numérique:
newseries <- myzooseries
index(newseries) <- index(myzooseries) + 1/24
Les objets de chron sont représentés sous forme de nombres décimaux, de sorte que vous pouvez utiliser pour calculer. Un jour est 1, donc une heure est 1/24, une minute 1/1440 et ainsi de suite. Vous pouvez le voir facilement si vous utilisez les temps de fonctionnement. Cela vous donne le temps de l'objet testé, par exemple:
> A <- chron(c("01/01/97","01/02/97","01/03/97"))
> B <- A + 1/24
> B
[1] (01/01/97 01:00:00) (01/02/97 01:00:00) (01/03/97 01:00:00)
> times(A)
Time in days:
[1] 9862 9863 9864
> times(B)
Time in days:
[1] 9862.042 9863.042 9864.042
> times(B-A)
[1] 01:00:00 01:00:00 01:00:00
> times(A[3]-B[1])
Time in days:
[1] 1.958333
Autres conseils
Convertir en POSIXct
, ajouter 60 * 60 (1h en s), puis reconvertir.