Dans le package zoo rollmean
et rollapply
ont des arguments qui permettent de nombreuses variations.
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:
Notez que depuis cela a été écrit la version de développement du zoo a été modifié de sorte qu'au lieu d'écrire partial = TRUE
on écrit règle = « partielle » ou rule = 3
. Le problème était que lorsque de nouvelles règles de fin étaient ajoutées à la version de développement (il y en a maintenant 3 et une 4ème sera ajoutée avant sa sortie) ayant un argument séparé pour chacune d'elles encombre l'interface utilisateur. En outre rule
est plus compatible avec approx
dans le noyau de R. En fait, rule=1
et rule=2
auront la même signification en rollapply
et en approx
(du noyau de R) pour une meilleure cohérence et facilité d'utilisation. Les parenthèses autour de mean
dans l'exemple ci-dessous sont actuellement requises dans la version de développement pour l'empêcher d'appeler rollmean
, où rule="partial"
n'a pas encore été implémenté, mais le besoin de le faire sera éliminé au moment de sa sortie officielle.
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")
Mais pourquoi la sortie de rollmean est toujours un élément plus court que le débit? – rsk82