&引用;找不到函数“;在R中使用foreach时

&引用;找不到函数“;在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)

我知道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))
}

如何指定
.export
参数?

您需要群集导出所有群集所需的功能。我尝试了
群集导出
功能。它起作用了。
res <- fun4(10^3, fun1, .export = c("fun2"))