我想要一个函数来返回向量中所有值的乘积,例如sum
,但是使用乘法而不是加法。我预计这已经存在,但如果确实存在,我找不到它。这是我的解决方案:
product <- function(vec){
out <- 1
for(i in 1:length(vec)){
out <- out*vec[i]
}
out
}
这表现我想要的方式。例如:
> product(1:3)
[1] 6
是否有更好的方法可以使用现有功能或通过改进此自定义功能?
答案 0 :(得分:56)
您想要prod
:
R> prod(1:3)
[1] 6
答案 1 :(得分:2)
如果您的数据都大于零,那么这是一种更安全的解决方案,不会导致计算溢出:
exp(sum(log(x)))