fontion sum dans une boucle

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Lelandais ludovic
Messages : 11
Enregistré le : 20 Fév 2019, 11:11

fontion sum dans une boucle

Messagepar Lelandais ludovic » 19 Mar 2019, 15:14

Bonjour à tous,
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

Pierre-Yves Berrard
Messages : 1029
Enregistré le : 12 Jan 2016, 23:30

Re: fontion sum dans une boucle

Messagepar Pierre-Yves Berrard » 19 Mar 2019, 15:24

Bonjour,

L'opérateur ":" est prioritaire sur les autres, donc

Code : Tout sélectionner

(i-1):(i+1)
PY

François Bonnot
Messages : 537
Enregistré le : 10 Nov 2004, 15:19
Contact :

Re: fontion sum dans une boucle

Messagepar François Bonnot » 19 Mar 2019, 15:25

Bonjour,
La solution est peut-être ici :
http://forums.cirad.fr/logiciel-R/viewtopic.php?t=7443
François

Lelandais ludovic
Messages : 11
Enregistré le : 20 Fév 2019, 11:11

Re: fontion sum dans une boucle

Messagepar Lelandais ludovic » 19 Mar 2019, 15:30

Bonjour à tous les deux,
merci beaucoup, les parenthèses fonctionnent nickel,
je vais tout de même me pencher sur la solution proposée dans l'autre poste
Merci à tous les deux :)

Bonne journée.


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité