如何在r中不使用cumprod的情况下累积乘以向量?

nit*_*ita 7 r

我需要创建一个函数cprod-> 将数字向量作为参数并返回相同长度的累积向量。所以,如果我有cprod(c(1,2,3)),返回的向量应该是c (1, 1 * 2, 1 * 2 * 3) = c (1, 2, 6)

这可以在没有的情况下完成cumprod吗?也许与prodfor-loop

tmf*_*mnk 7

一种选择可能是:

Reduce(`*`, x, accumulate = TRUE)

[1] 1 2 6
Run Code Online (Sandbox Code Playgroud)


pse*_*pin 6

它不使用cumprod...

x <- c(1,2,3)
exp(cumsum(log(x)))

#> [1] 1 2 6
Run Code Online (Sandbox Code Playgroud)