Eine Stunde Zuwachs in R, Zoo
Frage
Wie kann ich eine Stunde auf alle Elemente des Index einer Zoo-Serie?
Ich habe versucht,
newseries <- myzooseries
index(newseries) <- index(myzooseries)+times("1:00:00")
, aber ich erhalte die Meldung
Incompatible methods ("Ops.dates", "Ops.times") for "+"
Dank
Ihr Index ist ein chron Objekt mit Datum und Zeit, aber ich habe mit einfacheren Beispielen versucht, und ich kann sie nicht
Lösung
Dies wird einfach durch Hinzufügen der Zeit, die Sie in einer numerischen Art und Weise wollen gelöst:
newseries <- myzooseries
index(newseries) <- index(myzooseries) + 1/24
chron-Objekte werden als Dezimalzahlen dargestellt, so dass man das zu berechnen verwenden kann. Ein Tag ist 1, so eine Stunde 1/24, eine Minute 1/1440 und so weiter ist. Sie können dies leicht sehen, wenn Sie die Funktion mal verwenden. Dies gibt Ihnen die Zeiten des Objekts getestet, zum Beispiel:
> 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
Andere Tipps
Convert to POSIXct
, fügen Sie 60 * 60 (1h in s) und dann zurück zu konvertieren.