Можно ли оцифровать код, как указано ниже?Можно ли векторизовать последовательное обновление элементов вектора в R?
length(x) <- 100;
x[1] <- 1;
y <- rnorm(100);
for(i in 2:100) {
x[i] <- 2 * y[i] * x[i-1];
}
Я ценю, что это тривиальный пример, но он служит для иллюстрации идеи.
Мне часто приходится писать код, где i-е значение в векторе зависит от (i-1) -го значения, и, если возможно, я бы хотел написать это без необходимости в цикле for
, поскольку профилирование предлагает функции с этим типом операций являются основными узкими местами в моем коде.
Является ли эта операция векторируемой, поэтому мне не нужно использовать цикл for()
в расчете?
Вы нашли слабое звено R :) Боюсь только общее решение состоит в том, чтобы отбросить вычисление до уровня C. – VitoshKa