以下は、私が取り組んでいるコードの一部の簡略化されたバージョンです(混乱を避けるために、多くの追加の計算が省略されています)。これはちょうどcumsum
機能の変更された形式です。私はホイールを再発明したくないので、この機能はすでに存在していますか?そうでない場合は、どのスキームが最高のスピードを提供するでしょうか?変更されたcumsum関数
#Set up the data
set.seed(1)
junk <- rnorm(1000000)
junk1 <- rnorm(1000000)
cumval <- numeric(1000000)
#Initialize the accumulator
cumval[1] <- 1
#Perform the modified cumsum
system.time({
for (i in 2:1000000) cumval[i] <- junk[i] + (junk1[i] * cumval[i-1])
})
#Plot the result
plot(cumval, type="l")
うこれがどのように使われているかもう少し説明してください。 'junk [1]'と 'junk1 [1]'はあなたのアルゴリズムで決して使われないことに注意してください... – Tommy