Я новичок в 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 профессиональный жаргон, и я не мог следовать. Как я могу сделать эту параллельную версию, что делает непараллельная версия. Благодарю.
Посмотрите на аргумент '.combine'. – nrussell