2010-06-21 57 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