我有以下数据:
> 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
我想使用以下规则填充x
:x(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
是否有一种有效的方法可以在不使用循环的情况下完成上述操作,从而将其应用于大型数据集?