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:
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.
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)
Je vous remercie par avance pour votre aide
nicolas
Partager