在并行执行中使用 getOption

det*_*det 5 r

我无法理解为什么使用getOption检索我手动设置的选项NULL在并行执行中返回foreach,而它正确返回其他选项:

library(foreach)

options(my_option = 1)

f <- function(option){
  
  cl <- parallel::makeCluster(parallel::detectCores() - 1)
  doParallel::registerDoParallel(cl)
  on.exit(parallel::stopCluster(cl), add = TRUE)
  on.exit(foreach::registerDoSEQ(), add = TRUE)
  
  foreach(i = 1:3) %dopar% {getOption(option)}
}
Run Code Online (Sandbox Code Playgroud)

例子:

f("warn")
[[1]]
[1] 0

[[2]]
[1] 0

[[3]]
[1] 0

f("my_option")
[[1]]
NULL

[[2]]
NULL

[[3]]
NULL
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用.export参数,但如果可能的话,我想要不使用它的解决方案。