我想找到一种方法来替换我正在使用的for循环。我的问题的快速版本是:
如何从向量[a,b,c,d,e]
转到[1,a,a*b,a*b*c,a*b*c*d]
?
我目前做的事情如下:
myvec <- c(.3,.5,.2,.3,.3)
new_vec <- vector(length=length(myvec))
new_vec[1] <- 1
for (i in 2:length(myvec)) {
new_vec[i] <- myvec[i-1]*new_vec[i-1]
}
但是,这非常慢。有任何想法吗? 谢谢!
答案 0 :(得分:5)
这样做你想要的吗?
c(1, cumprod(myvec))[1:length(myvec)]