J'ai un ensemble de données que je dois calculer leur « moyenne consécutive » (je ne sais pas si elle est le nom correct, mais je ne peux pas trouver mieux), voici un exemple:comment calculer "moyenne consécutive" dans R sans utiliser de boucle, ou d'une manière plus efficace?
ID Var2 Var3
1 A 1
2 A 3
3 A 5
4 A 7
5 A 9
6 A 11
7 B 2
8 B 4
9 B 6
10 B 8
11 B 10
Ici, j'ai besoin de calculer la moyenne de 3 variables Var3 dans le même sous-ensemble consécutivement (ie il y aura 4 moyennes calculées pour A: moyenne (1,3,5), moyenne (3,5,7), moyenne (5,7 , 9), moyenne (7,9,11), et 3 moyennes calculées pour B: moyenne (2,4,6), moyenne (4,6,8), moyenne (6,8,10). devrait être:
ID Var2 Var3 Mean
1 A 1 N/A
2 A 3 N/A
3 A 5 3
4 A 7 5
5 A 9 7
6 A 11 9
7 B 2 N/A
8 B 4 N/A
9 B 6 4
10 B 8 6
11 B 10 8
Actuellement, j'utilise une approche de "boucle-dans-une-boucle", je sous-ensemble le dataset u chante Var2, puis j'ai calculé la moyenne dans un autre début à partir des troisièmes données.
Cela correspond à ce dont j'ai besoin, mais il est très lent, existe-t-il un moyen plus rapide pour ce problème?
Merci!
merci! mais qu'en est-il si var3 n'est pas commandé (ils doivent être triés par ID)? – lokheart
Ensuite, commandez d'abord 'x' par' ID': 'x <- x [order (x $ ID),]' –