46 votes

Comment additionner les éléments d'une liste numérique

Je m'interroge sur une manière élégante permettant de sommer (ou de calculer une moyenne) les valeurs numériques d'une liste. par exemple

 x <- list( a = matrix(c(1,2,3,4), nc=2), b = matrix(1, nc=2, nr=2))

et veux obtenir

 x[[1]]+x[[2]] 

ou un moyen :

 (x[[1]]+x[[2]])/2

85voto

James Points 24725

Vous pouvez utiliser Reduce pour appliquer successivement une fonction binaire aux éléments d'une liste.

 Reduce("+",x)
     [,1] [,2]
[1,]    2    4
[2,]    3    5

Reduce("+",x)/length(x)
     [,1] [,2]
[1,]  1.0  2.0
[2,]  1.5  2.5

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X