gpt4 book ai didi

r - 从 `parallel` 包中的非基础 R 包调用函数,而不在函数内将它们库

转载 作者:行者123 更新时间:2023-12-04 03:05:50 24 4
gpt4 key购买 nike

假设我正在尝试运行以下代码

library(gregmisc)
library(parallel)
myfunction <- function(x){
combinations(10, x, 1:10)
}
cl <- makeCluster(getOption("cl.cores", 2))
parLapply(cl, 3, myfunction)

我收到错误
#Error in checkForRemoteErrors(val) : 
#one node produced an error: could not find function "combinations"

因此,如果我将在函数中库“gregmisc”包,它将起作用
myfunction <- function(x){
library(gregmisc)
combinations(10, x, 1:10)
}
cl <- makeCluster(getOption("cl.cores", 2))
parLapply(cl, 3, myfunction)

问题是,如何避免在函数中使用库包?

我看到类似的问题已经在 here 中被问到关于“snow”和“snowfall”的问题了和 here

但我无法让它为“并行”包工作

我试过了(没有成功)
library(snow)
library(snowfall)
sfExport(list=list("combinations"))
sfLibrary(gregmisc)
clusterEvalQ(cl, library(gregmisc))

最佳答案

我没有看到任何 combinations函数在 gregmisc .这可能是你的实际问题吗?

使用 clusterEvalQ() 在每个节点上加载包应该工作,并且一直为我工作。
以下代码几乎是从 vignette("parallel") 的第 8 页中逐字提取的:

require(parallel)
cl <- makeCluster(4)
junk <- clusterEvalQ(cl, library(boot)) ## Discard result

关于r - 从 `parallel` 包中的非基础 R 包调用函数,而不在函数内将它们库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23096869/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com