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

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top