I einer Probe mit dem XTS gewissen Datenobjekt haben:mit Umgang gelten Funktionen XTS Objekt in R
dates <- seq.Date(from = as.Date("2010-01-01", format = "%Y-%m-%d"),
to = as.Date("2013-12-01", format = "%Y-%m-%d"), by = "month")
sample_data <- cbind(1:length(dates),length(dates):1)
xts_object <- xts(x = sample_data, order.by = dates)
I apply.yearly dann darauf mit der Funktion cumsum verwenden:
apply.yearly(x = xts_object, FUN = cumsum)
Die Ausgabe ist eine transponierte Matrix, die ich ursprünglich nicht zurückgeben wollte.
würde ich die Schnipsel oben erwarten die gleiche Ausgabe wie zurückzukehren:
rbind(apply(X = xts_object[1:12],MARGIN = 2,FUN = cumsum),
apply(X = xts_object[13:24],MARGIN = 2,FUN = cumsum),
apply(X = xts_object[25:36],MARGIN = 2,FUN = cumsum),
apply(X = xts_object[37:48],MARGIN = 2,FUN = cumsum),
apply(X = xts_object[49:60],MARGIN = 2,FUN = cumsum),
apply(X = xts_object[61:72],MARGIN = 2,FUN = cumsum),
apply(X = xts_object[73:84],MARGIN = 2,FUN = cumsum))
Das Problem bei der Verwendung anzuwenden ist, dass es eine Matrix und kein xts Objekt zurückgibt. Während ich dies mit Hilfe von as.xts lösen könnte, würde ich gerne wissen, ob etwas fehlt, oder ob ich apply.yearly falsch verwende. Pure Apply scheint eher anfällig für Fehler und Bugs zu sein.
'apply' gibt immer ein' matrix', ob Sie mit ' xts' oder 'dat.frame' – akrun
Verwenden Sie' reclass() ', um es wieder' xts' zu machen: 'reclass (apply (X = xts_object, MARGIN = 2, FUN = Cumsum), match.to = xts_object)' – Rime
Die Ausgabe Ihres Aufrufs "Anwenden" setzt die kumulative Summe nicht jedes Jahr zurück. Es ist das gleiche wie nur 'cumsum (xts_object)' zu nennen. "apply.yearly" sollte auch die kumulative Summe jedes Jahr zurücksetzen. –