Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
287 views
in Technique[技术] by (71.8m points)

multiplying all elements of a vector in R

I want a function to return the product of all the values in a vector, like sum but with multiplication instead of addition. I expected this to exist already, but if it does I can't find it. Here's my solution:

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

This behaves the way I want it to. For example:

> product(1:3)
[1] 6

Is there a better way of doing this, either with an existing function or through an improvement to this custom one?

question from:https://stackoverflow.com/questions/3087145/multiplying-all-elements-of-a-vector-in-r

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

You want prod:

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

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...