首页 > 解决方案 > foreach %dopar% 中的表达式()

问题描述

我正在尝试包含一个expression()in foreach() %dopar%。这expression()将用于通过调用中的Sim.DiffProc包模拟 Ornstein-Uhlenbeck 过程。foreach() %dopar%

但是,并行计算节点似乎无法识别中指定的变量,expression()并且出现以下错误Error in { : task 1 failed - "object 'OUTheta' not found"

任何人有任何想法如何解决这个问题?提前谢谢了!

我的代码:

library(Sim.DiffProc)
library(doSNOW)
library(foreach)


cl <- makeCluster(2)
registerDoSNOW(cl)

a = foreach(i = 1:2, .packages = c('Sim.DiffProc')) %dopar% {
  OUMu = 1
  OUTheta = 1
  OUSigma = 1
  f = expression(OUTheta * (OUMu - x))
  g = expression(OUSigma)
  sim = Sim.DiffProc::snssde1d(drift = f, diffusion = g, x0 = 0, N = 10, T = 1, method = 'euler', M = 1)
  return(sim$X)
}

标签: rforeachsnow

解决方案


推荐阅读