Nel pacchetto zoo rollmean
e rollapply
hanno argomenti che permettono numerose varianti.
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:
Nota che da quando questo è stato scritto la versione di sviluppo di zoo è stato modificato in modo che invece di scrivere partial = TRUE
uno scrive regola = "parziale" o rule = 3
. Il problema era che come nuove regole di fine sono state aggiunte alla versione di sviluppo (ci sono ora 3 e una quarta verrà aggiunta prima della sua versione) con un argomento separato per ciascuna di esse ingombra l'interfaccia utente. Anche rule
è più coerente con lo approx
nel core di R. Infatti, rule=1
e rule=2
avranno lo stesso significato in rollapply
e in approx
(dal nucleo di R) per una maggiore coerenza e facilità d'uso. Le parentesi intorno a mean
nell'esempio seguente sono attualmente necessarie nella versione di sviluppo per impedirgli di chiamare rollmean
, dove rule="partial"
non è ancora stato implementato, ma la necessità di farlo sarà eliminata dal momento in cui è stata rilasciata ufficialmente.
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")
fonte
2010-12-12 14:29:21
Ma perché l'output di rollmean è sempre un elemento più breve di itput? – rsk82