在R中使用foreach时“找不到函数”

时间:2016-04-10 08:50:55

标签: 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) {
  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参数?

0 个答案:

没有答案