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

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top