2つの行列を変更する並列for-eachループを構築しようとしています。ループを開始する前に、マトリックスを作成して初期化します。これは私のコードがどのように機能するかを示すダミープログラムです。プログラムはエラーなしで実行されますが、foreachループが終了した後も行列は空のままです。注:これは私のコードの簡略版であり、実際のコード自体ではありません。
#Assume that I've loaded parallel and doParallel and that my computer has 2+ cores
cluster <- makeCluster(detectCores())
registerDoParallel(cluster)
a1 <- array(dim=c(9,9))
a2 <- array(dim=c(9,9))
numbers <- 1:18
foreach (i=1:9, .combine='c') %dopar%{
a1[i,] = numbers[1:9]
a2[i,] = numbers[10:18]
}
stopCluster(cluster)
このプログラムがa1とa2の行にデータを入力しないのはなぜですか?
編集:以前のスレッドで私の質問に対する答えを見つけることができませんでした。C#とPerlにも同様のスレッドがありますが、Rに関係するスレッドはありません。