Предположим, что я хочу создать n = 3 пути случайного блуждания (длина пути = 100) с заданной матрицей (100x3) плюс/минус. Первый путь начнется в 10, второй в 20, третий на 30:векторизовать это для цикла (текущая строка зависит от строки выше)
set.seed(123)
given.rand.matrix <- replicate(3,sign(rnorm(100)))
path <- matrix(NA,101,3)
path[1,] = c(10,20,30)
for (j in 2:101) {
path[j,]<-path[j-1,]+given.rand.matrix[j-1,]
}
Конечные значения (с учетом семян и Rand матрица) 14, 6, 34 ..., который является желаемый результат ... но ...
Вопрос: Есть ли способ векторизации цикла for? Проблема заключается в том, что при вычислении матрица пути еще не заполнена полностью. Таким образом, замена петли на path[2:101,]<-path[1:100,]+given.rand.matrix
возвращает в основном NA. Я просто хочу знать, можно ли избежать этого типа цикла в R.
Большое спасибо заранее.
похож недавно [нить] (http://stackoverflow.com/questions/4695224/is-it-possible- to-vectorise-the-sequential-update-of-the-the-elements-of-a-vector-in) – VitoshKa