执行以下虚拟代码时:
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
谢谢!