如何将附加参数(存储在“…”中)传递到多个Core以进行Parlappy,在R中?

如何将附加参数(存储在“…”中)传递到多个Core以进行Parlappy,在R中?,r,parallel-processing,parameter-passing,lapply,optional-parameters,R,Parallel Processing,Parameter Passing,Lapply,Optional Parameters,我正在编写一个接受附加参数的函数f1。。。要传递给f1内部的函数f0。更准确地说,f0在并行lappy调用中被调用,在f1内部。只要至少要传递一个参数,它就可以正常工作,但如果。。。如果为空,我将收到错误消息:getname中出错,envir=envir:argument。。。缺少,没有默认值 如果我使用lappy而不是parlappy,效果很好 有合适的解决办法吗?我不想在f1的定义中明确定义f0的所有参数 首先,我用两个可选参数定义函数 f0我很确定你不能导出。。。那样。相反,一定要传下去。

我正在编写一个接受附加参数的函数f1。。。要传递给f1内部的函数f0。更准确地说,f0在并行lappy调用中被调用,在f1内部。只要至少要传递一个参数,它就可以正常工作,但如果。。。如果为空,我将收到错误消息:getname中出错,envir=envir:argument。。。缺少,没有默认值

如果我使用lappy而不是parlappy,效果很好

有合适的解决办法吗?我不想在f1的定义中明确定义f0的所有参数

首先,我用两个可选参数定义函数


f0我很确定你不能导出。。。那样。相反,一定要传下去。。。作为参数,如:

f1 <- function(A, ...) {
   # A ... vector of a
   B <- rev(A)

   sapply(seq_along(A), function(i, ...) {
      f0(A[i], B[i], ...)
   }, ...) 
}

然后,对parallel::parSapply执行同样的操作。

太好了,可以了。谢谢我试过了,重要的是,“…”包含三次,在functioni中,…,在apply调用的最后一个参数处,以及作为f0的传递参数。