Frage

Ich habe eine Zoo-Zeitreihe wie folgt:

>> head(ww)
(11/22/08 11:37:00) (11/22/08 12:07:00) (11/22/08 12:22:00) (11/22/08 12:37:00) 
           0.087114            0.055422            0.055250            0.059483 
(11/22/08 12:52:00) (11/22/08 13:07:00) 
           0.057896            0.061808

Wie Sie sehen können, sind die Zeiten 11:37, 12:07, 12:22 usw.Ich möchte diese Zeiten auf das nächste ganze Vielfache von zehn Minuten ändern - zum Beispiel XX:10, XX:20.In diesem Fall würde 11:37 zu 11:40, 12:07 zu 12:10 und 12:22 zu 12:20.

Ich habe herausgefunden, wie man es auf die nächste Minute aggregiert:

wholemin <- function(x) trunc(x, units="minutes")
result = aggregate(r, wholemin, head, 1)

Aber ich kann nicht verwenden trunc zu etwas anderem als Sekunden, Minuten, Stunden usw. aggregieren.

Wie soll ich das machen?

Zur Vereinfachung der Beispiele wird die Ausgabe von dput(head(ww) ist unten:

structure(c(0.087114, 0.055422, 0.05525, 0.059483, 0.057896, 
0.061808), index = structure(c(14205.4840277778, 14205.5048611111, 
14205.5152777778, 14205.5256944444, 14205.5361111111, 14205.5465277778
), format = structure(c("m/d/y", "h:m:s"), .Names = c("dates", 
"times")), origin = structure(c(1, 1, 1970), .Names = c("month", 
"day", "year")), class = c("chron", "dates", "times")), class = "zoo")
War es hilfreich?

Lösung

Versuchen Sie dies:

to10 <- function(tt) trunc(tt + as.numeric(times("00:05:00")), units = "00:10:00")
aggregate(z, to10, mean)

und siehe die Beispiele in ?trunc.times und ?aggregate.zoo .

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