je n'ai pas trouvé la réponse à ma question dans le forum concernant la fonction sum je me permet donc de créer une nouvelle question.
voila je dois calculer une "glissante" sur ma série de donnée c'est à dire que le terme au rang i prend la valeur de somme des termes au rang i-1,x et i+1 et je n'arrive pas à trouver la syntaxe.
voici ci dessous un code reproductible illustrant mon problème :
Code : Tout sélectionner
M <- c(400,401,398)
M
sum(M[1:3])
i<- 2
sum(M[i-1 : i+1])
"sum(M[i-1 : i+1])" me calcul en fait M[1] + M[2] c'est à dire 801 pourtant je lui demande en fait de me calculer entre M[1] et M[3] soit 1199
> M <- c(400,401,398,500)
> M
[1] 400 401 398 500
> sum(M[1:3])
[1] 1199
> a<- 2
> sum(M[a-1 : a+1])
[1] 801
comment puis je transformer "sum(M[1:3])" qui m’exécute le bon calcul en une ligne où intervient le rang i pour pouvoir faire tourner le calcul dans une boucle ?
si vous avez une explication ou solution je suis preneur merci beaucoup.
Bonne journée,
cordialement.
ludovic