2010-06-21 94 views
24

我想要一個函數返回矢量中的所有值的乘積,如sum,但用乘法而不是加法。我預計這已經存在,但如果它確實存在,我無法找到它。這是我的解決方案:乘以R中所有元素的元素

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

這表現了我想要的方式。例如:

> product(1:3) 
[1] 6 

是否有這樣做的更好的方法,無論是與現有的功能,或通過改善這種自定義的?

+5

RCS回答了這個第一次,所以我刪除我的帖子。強烈建議打印R參考卡。你可以在這裏找到它: http://cran.r-project.org/doc/contrib/Short-refcard.pdf – mcpeterson 2010-06-21 18:18:49

回答

50

你想prod

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

我們走了,我知道它一定很簡單。 – Fojtasek 2010-06-21 18:28:43