我知道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) {
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))
}
当我运行fun4
时,出现错误“找不到功能'fun2'”。
res <- fun4(10^3, fun1, .export = c("fun2"))
如何指定.export
参数?