Я пытаюсь ускорить/векторизовать некоторые вычисления во временном ряду. Можно ли векторизовать вычисление в цикле 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?