これは本当に私の心を吹き飛ばしています。基本的なループは、私のコンピューターでは 8 秒ほどかかります。
system.time({
x <- 0
for (p in 1:2) {
for (i in 1:500) {
for (j in 1:5000) {
x <- x + i * j
}
}
}
})
x
非並列モードで使用するforeach
と、わずか0.7秒しかかかりません!!!
system.time({
x <- 0
foreach(p = 1:2, .combine = rbind) %do%
for (i in 1:500) {
for (j in 1:5000) {
x <- x + i * j
}
}
})
x
結果は同じですが、foreach
どういうわけか基本的な R よりもはるかに速く到達することができました! 基本的な R の非効率性はどこにありますか?
これはどのように可能ですか?
実際、これとはまったく逆の結果が得られました。