避免递归公式

时间:2015-05-26 08:27:30

标签: r performance for-loop recursion

我有以下数据:

> set.seed(0)
> x <- c(1,rep(0, 15)) ; x
 [1] 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
> y <- rnorm(length(x)) ; y
 [1]  1.262954285 -0.326233361  1.329799263  1.272429321  0.414641434 -1.539950042 -0.928567035
 [8] -0.294720447 -0.005767173  2.404653389  0.763593461 -0.799009249 -1.147657009 -0.289461574
[15] -0.299215118 -0.411510833

我想使用以下规则填充xx(t) = x(t-1)*y(t)

我可以使用for循环

for (t in 2:length(x))
  x[t] <- x[t-1]*y[t]
x

获得:

[1]  1.000000e+00 -3.262334e-01 -4.338249e-01 -5.520115e-01 -2.288868e-01  3.524743e-01 -3.272960e-01
 [8]  9.646083e-02 -5.563063e-04 -1.337724e-03 -1.021477e-03  8.161696e-04 -9.366828e-04  2.711337e-04
[15] -8.112730e-05  3.338476e-05

是否有一种有效的方法可以在不使用循环的情况下完成上述操作,从而将其应用于大型数据集?

0 个答案:

没有答案