関数でmclapply
は、リスト内の各項目ごとに実行する必要があり、セミグローバル変数も使用する必要がありますvar.1
。すべてのリストアイテムに追加したくありませんvar.1
。メモリが多すぎるからです。問題を説明するコードは次のとおりです。
library(parallel)
list.1 <- list(1,2,3,4)
myInnerFunction <- function(xx) {
return(xx+var.1)
}
myOuterFunction <- function(list.x) {
var.1 <- 17
tmp.1 <- mclapply(list.x, myInnerFunction, mc.cores=6)
return(tmp.1)
}
results <- myOuterFunction(list.x=list.1)
[1] "Error in FUN(X[[1L]], ...) : object 'var.1' not found\n"
results[[1]] # This should be 18
どうすればに渡すことができvar.1
ますmclapply
か?var.1
内で宣言する必要がありますmyOuterFunction
。