Я пытаюсь ускорить / векторизовать некоторые вычисления во временном ряду. Могу ли я векторизовать вычисление в цикле for, которое может зависеть от результатов предыдущей итерации? Например:
z <- c(1,1,0,0,0,0)
zi <- 2:6
for (i in zi) {z[i] <- ifelse (z[i-1]== 1, 1, 0) }
использует значения z [i], обновленные на предыдущих шагах:
> z
[1] 1 1 1 1 1 1
В моих усилиях по векторизации этого
z <- c(1,1,0,0,0,0)
z[zi] <- ifelse( z[zi-1] == 1, 1, 0)
поэлементные операции не используют результаты, обновленные в операции:
> z
[1] 1 1 1 0 0 0
Таким образом, эта векторизованная операция работает «параллельно», а не итеративно. Есть ли способ записать / векторизовать это, чтобы получить результаты цикла for?