我在使用变量" Druckfaktor"时遇到问题。在parLapply
。
我的代码如下所示:
Druckfaktor <- 1.3
no_cores <- detectCores()-1
cl <- makeCluster(no_cores)
S <- parLapply(cl,m.list,function(x) {
s <- diag(x[2:4])
s[1,2] <- s[2,1] <- x[5]
s[2,3] <- s[3,2] <- x[6]
s[3,1] <- s[1,3] <- x[7]
VD <- eigen(s)
V <- VD$vectors
D <- VD$values
D[D<0] <- D[D<0]/Druckfaktor
s <- V %*% diag(D) %*% t(V)
c(x[1],s[1,1],s[2,2],s[3,3],s[1,2],s[2,3],s[3,1])
})
stopCluster(cl)code here
不幸的是,该功能回答:
Error in checkForRemoteErrors(val) : 11 nodes produced errors; first error: Objekt 'Druckfaktor' nicht gefunden
我如何使用这个&#34; Druckfaktor&#34;和parLapply
一起?
由于
答案 0 :(得分:1)
您必须使用clusterExport
:
clusterExport(cl = NULL, varlist, envir = .GlobalEnv)
clusterExport将varlist中命名的变量的主R进程上的值分配给每个节点的全局环境(也称为“工作空间”)中的相同名称的变量。从中导出变量的主服务器上的环境默认为全局环境。
在你的情况下:
Druckfaktor <- 1.3
no_cores <- detectCores()-1
cl <- makeCluster(no_cores)
clusterExport(cl, c("Druckfaktor"))
[...]