次のようなコードをベクトル化することは可能ですか?
length(x) <- 100;
x[1] <- 1;
y <- rnorm(100);
for(i in 2:100) {
x[i] <- 2 * y[i] * x[i-1];
}
これは些細な例ですが、アイデアを説明するのに役立ちます。
for
ベクトルの i 番目の値が (i-1) 番目の値に依存するコードを記述する必要があることがよくあります。可能であれば、プロファイリングがこの型の関数を示唆しているため、ループを必要とせずにこれを記述したいと考えています。私のコードの主要なボトルネックです。
この操作はベクトル化できるのでfor()
、計算でループを使用する必要はありませんか?