Dies ist wirklich eine Erweiterung meiner question gestern, wo ich über apply.weekly
gelernt habe. Das funktioniert super, aber ich möchte dies über weite zoo
Objekte tun. Wenn ich apply.weekly
auf einer breiten zoo
verwenden sie die Spalten summiert, führt dann die wöchentliche Aggregation:Schnell XTS-Vektor-Operationen über breite Zoo-Objekte in R
> library(xts)
> set.seed(2001)
> zoo.daily <- zoo(data.frame(a=rnorm(20), b=rnorm(20), c=rnorm(20)), order.by=as.Date("2001-05-25") + 0:19)
> apply.weekly(zoo.daily, sum)
2001-05-27 2001-06-03 2001-06-10 2001-06-13
1.091999 -3.017688 3.842305 2.045370
> apply.weekly(zoo.daily[, 1] + zoo.daily[, 2] + zoo.daily[, 3], sum)
2001-05-27 2001-06-03 2001-06-10 2001-06-13
1.091999 -3.017688 3.842305 2.045370
Ich versuchte, die apply
Familie von Operatoren, aber die scheinen den zoo
Datum Index Streifen aus. Ich kann es in einer for
Schleife tun, aber es ist wirklich zeitaufwendig (viel, viel mehr als ein Faktor von vier langsamer als die aggregate
Funktion auf as.yearmon
Periodizität). Hier ist die for
Schleife:
week.ends <- index(zoo.daily[endpoints(zoo.daily, "weeks")[-1], ])
num.weeks <- nweeks(zoo.daily)
num.stocks <- ncol(zoo.daily)
zoo.weeks <- zoo(matrix(NA, num.weeks, num.stocks), order.by=week.ends)
for (i in seq(num.stocks)) {
zoo.weeks[, i] <- apply.weekly(zoo.daily[, i], mean)
}
Welche Werke (das heißt, hält jeden Vektor separat):
2001-05-27 -0.36663040 -0.108648725 0.8392788
2001-06-03 0.33032998 0.003025018 -0.7644534
2001-06-10 0.07816992 0.620198931 -0.1494681
2001-06-13 0.02114608 0.956226189 -0.2955824
Gibt es eine Möglichkeit, um schnell auf alle Spalten arbeiten mit apply.weekly
? Vielen Dank!
UPDATE: Joshua Ulrich weist darauf hin, dass ich eine Spalte bewusste Funktion (wie colMeans
oder colSums
) benötigen. Wenn ich das mache, bekomme ich die richtigen Antworten, aber als eine transponierte Matrix. Sollte ich einfach umziehen und weitermachen? Oder habe ich eine Option/Einstellung falsch?
> apply.weekly(zoo.daily, colSums)
[,1] [,2] [,3] [,4]
a -1.0998912 2.31230989 0.5471894 0.06343824
b -0.3259462 0.02117512 4.3413925 2.86867857
c 2.5178365 -5.35117351 -1.0462765 -0.88674717
In Bezug auf Ihre Update: installieren xts von R-Schmiede. Jeff hat das vor ein paar Wochen gepatcht, aber bis jetzt ist es noch nicht bei CRAN gelandet. –