При выполнении следующей фиктивный код:R Еогеасп параллельный цикл не сохраняется
P = 2
library(foreach)
library(doMC)
registerDoMC(P)
f = double(length = P)
print('=== f values in loop ===')
foreach(c = 1:P) %dopar%
{
f[c] = c
print(f[c])
}
print('### f values after loop ###')
for(c in 1:P){ print(f[c]) }
я получаю следующий результат:
"=== f values in loop ==="
1
2
"### f values after loop ###"
0
0
Почему же f
значения, присвоенные в цикле foreach
не сохраняются?
В частности, почему f[1]
и f[2]
равны нулю после цикла foreach
?
Спасибо!
Спасибо Andrie, это сработало! Как раз один вопрос, как задать два аргумента (например, f и g) как вывод из foreach()? Я совершенно новичок в R. – user233558
Nevermind, нашел его здесь: http://stackoverflow.com/questions/19791609/saving-multiple-outputs-of-foreach-dopar-loop – user233558