[英]Is rouge syntax highlighting meant to highlight non-base functions in R?
[英]Calling functions from non-base R packages in `parallel` package without librarying them within the function
可以說我正在嘗試運行以下代碼
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)
問題是,如何避免在函數中編寫包?
但我無法讓它為“並行”包工作
我試過了(沒有成功)
library(snow)
library(snowfall)
sfExport(list=list("combinations"))
sfLibrary(gregmisc)
clusterEvalQ(cl, library(gregmisc))
我沒有在gregmisc中看到任何combinations
功能。 這可能是你的實際問題嗎?
使用clusterEvalQ()
在每個節點上加載包應該有效,並且始終對我有效。 以下代碼幾乎逐字逐句地從小vignette("parallel")
第8頁vignette("parallel")
解除:
require(parallel)
cl <- makeCluster(4)
junk <- clusterEvalQ(cl, library(boot)) ## Discard result
各個節點中的環境不同。 嘗試明確指定包:
myfunction <- function(x){
gregmisc::combinations(10, x, 1:10)
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.