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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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