Calculer une moyenne mobile en fonction d'une autre variable
Bonjour,
Je souhaite calculer une moyenne mobile sur plusieurs variables en fonction d'une valeur prise par une autre variable. Exemple j'ai deux "groupes" d'observations et deux variables a moyenner.
Code:
1 2 3 4
|
gp <- c(1, 1, 2, 2, 2)
var1 <- c(1, 2, 4, 6, 8)
var2 <- c(1, 2, 4, 6, 8) |
je cherche donc a obtenir une table avec les valeurs suivantes
gp v1 v2
1 1.5 1.5
2 5 5
2 7 7
J'arrive a le programmer mais d'une manière pas tres simple avec le code suivant:
Code:
1 2 3 4 5
|
tab <- zoo(cbind(gp, v1, v2) )
fdr <- function(tab) rollapply(tab, 2, mean)
re <- tapply(tab, tab$gp, fdr)
tb <- do.call(cbind, re) |
Le problème c'est qu'a lavant dernière étape il me renvoie une liste. Quand je la transforme une table, j'ai plein de valeurs manquantes. Ce qui devient compliqué pour la suite.
Je vous remercie par avance pour votre aide
nicolas