Im Zoo Paket rollmean
und rollapply
Argumente haben, die zahlreiche Variationen ermöglichen.
library(zoo)
x <- seq(10)^2
# no NAs at end
rollmean(x, 3)
# NAs at ends
rollmean(x, 3, na.pad = TRUE)
# weighted mean
rollapply(zoo(x), 3, function(x) c(1, 2, 1) %*% x/4)
# at ends take means of less than 3 points - needs devel version
# partial= is in development and at this point must use na.rm = TRUE to use partial
source("http://r-forge.r-project.org/scm/viewvc.php/*checkout*/pkg/zoo/R/rollapply.R?revision=802&root=zoo")
rollapply(zoo(x), 3, mean, partial = TRUE, na.rm = TRUE)
EDIT:
Beachten Sie, dass, da dies die Entwicklungsversion von Zoo geschrieben wurde so geändert, dass statt des Schreibens partial = TRUE
man schreibt Regel = „teilweise“ oder rule = 3
. Das Problem war, dass neue Endregeln zur Entwicklungsversion hinzugefügt wurden (es gibt jetzt 3 und eine vierte wird hinzugefügt, bevor sie veröffentlicht wurde), wobei ein separates Argument für jede die Benutzeroberfläche überfüllt. Auch rule
ist konsistenter mit approx
im Kern von R. Tatsächlich haben rule=1
und rule=2
die gleiche Bedeutung in rollapply
und in approx
(aus dem Kern von R) für bessere Konsistenz und Benutzerfreundlichkeit. Die Klammern um mean
in dem folgenden Beispiel werden derzeit in der Entwicklungsversion benötigt, um zu verhindern, dass sie rollmean
aufrufen, wobei noch nicht implementiert wurde, aber die Notwendigkeit dazu wird bis zur offiziellen Freigabe beseitigt.
source("http://r-forge.r-project.org/scm/viewvc.php/*checkout*/pkg/zoo/R/rollapply.R?revision=815&root=zoo")
rollapply(zoo(x), 3, (mean), rule = "partial")
Aber warum Ausgang von Rollmean ist immer ein Element kürzer als esput? – rsk82