&引用;找不到函数“;在R中使用foreach时
我知道stackoverflow中有很多类似的问题。但我认为这个问题可能有点不同&引用;找不到函数“;在R中使用foreach时,r,foreach,parallel-processing,R,Foreach,Parallel Processing,我知道stackoverflow中有很多类似的问题。但我认为这个问题可能有点不同 library(foreach) library(parallel) library(doParallel) fun1 <- function(x) { return(sqrt(x)) } fun2 <- function(x) { return(sin(x)) } fun3 <- function(x, FUN, .export = NULL, .packages = NULL)
library(foreach)
library(parallel)
library(doParallel)
fun1 <- function(x) {
return(sqrt(x))
}
fun2 <- function(x) {
return(sin(x))
}
fun3 <- function(x, FUN, .export = NULL, .packages = NULL) {
FUN <- match.fun(FUN)
cl <- makeCluster(detectCores())
registerDoParallel(cl)
res <- foreach(i = seq(x), .export = .export, .packages = .packages) %dopar% FUN(i)
stopCluster(cl)
return(res)
}
fun4 <- function(x, FUN, .export = NULL, .packages = NULL) {
return(fun3(x, FUN = function(x) fun2(match.fun(FUN)(x)), .export = .export, .packages = .packages))
}
如何指定
.export
参数?您需要群集导出所有群集所需的功能。我尝试了群集导出
功能。它起作用了。
res <- fun4(10^3, fun1, .export = c("fun2"))