2010-06-21 5 views
24

Je veux une fonction pour retourner le produit de toutes les valeurs dans un vecteur, comme sum mais avec multiplication au lieu de l'addition. Je m'attendais à ce que cela existe déjà, mais si c'est le cas, je ne peux pas le trouver. Voici ma solution:multiplier tous les éléments d'un vecteur dans R

product <- function(vec){ 
    out <- 1 
    for(i in 1:length(vec)){ 
     out <- out*vec[i] 
    } 
    out 
} 

Ceci se comporte comme je le souhaite. Par exemple:

> product(1:3) 
[1] 6 

Y at-il une meilleure façon de le faire, que ce soit avec une fonction existante, soit par une amélioration de celui-ci personnalisé?

+5

rcs ont répondu à cette première, donc je supprimé mon poste. Recommandez fortement l'impression de la carte de référence R. Vous pouvez le trouver ici: http://cran.r-project.org/doc/contrib/Short-refcard.pdf – mcpeterson

Répondre

50

Vous voulez prod:

R> prod(1:3) 
[1] 6 
+2

Voilà, je savais que ça devait être simple. – Fojtasek

Questions connexes