私はRでの並列計算が新しく、次のようにX、Y、Zに新しい値を追加することができます(非常に単純化された元の問題)。Rでの並列計算、合計変数
library(foreach)
library(doParallel)
X <- 0
Y <- 0
Z <- 0
cores <- detectCores()
cl <- makeCluster(cores[1] - 1) #not to overload your computer
registerDoParallel(cl)
A <- foreach(i = 1:3, .combine = data.frame) %dopar% {
X = X + i
Y = Y + i + 2
Z = Z + i + 3
}
stopCluster(cl)
IはA = [6 12 15]
(6 = 1 + 2 + 3を取得することを望んだ; 12 =(1 + 2)+ + 2(2)+(3 + 2); 15 =(1 + 3)+(2 +3)+(3 + 3))、残念ながらこの結果はA = [4 5 6]
です。
私はforeachののドキュメントの助けを借りて、この問題を解決しようとした、と私は私が所望の出力を得るために.combineのための機能を自分で作らなければならないと思うが、私はどのように表示されていない...
誰かが私を助けることができますか?
ありがとうございます!
なぜあなたはこれをしたいですか?これの背後にある本当の問題は何ですか? –
私はシミュレーションを行う必要がありますし、実際の値と推定値との差の二乗を計算してみます(最後に、これらの差を合計したいと思います)。しかし、私は別の対策があります:) – Chris