我是R新手。我寫了這個非常簡單的腳本來強調我的問題。如果我運行這個常規的循環測試數據,每次迭代都會更新,就像我想要的一樣。R:與foreach並行化
a = 5
b = 4
c = 3
testdata = matrix(nrow=100, ncol=5)
for(j in 1:100){
testdata[j,1] <- a*j
testdata[j,2] <- b*j
testdata[j,3] <- c*j
testdata[j,4] <- (a+b)*j
testdata[j,5] <- (a+c)*j
}
但是使用的foreach這個水貨版本完成的計算,但他們沒有在TESTDATA更新。
a = 5
b = 4
c = 3
testdata = matrix(nrow=100, ncol=5)
library(foreach)
library(doParallel)
library(doMC)
registerDoMC()
getDoParWorkers() # Checking the number of cores.
foreach(j = 1:100) %dopar% {
testdata[j,1] <- a*j
testdata[j,2] <- b*j
testdata[j,3] <- c*j
testdata[j,4] <- (a+b)*j
testdata[j,5] <- (a+c)*j
}
我試圖在這裏和其他地方遵循的例子在互聯網上,但大多數的例子是R中shoptalk太深了,我跟不上。我如何使這個並行版本做非平行版本的功能。謝謝。
查看'.combine'參數。 – nrussell