【发布时间】:2021-04-30 14:50:10
【问题描述】:
我正在尝试与 foreach 并行运行 R 循环。 这个想法是,使用 foreach 调用的函数将从列表中获取某个函数并将其用作另一个函数的参数。
func_list <- c(a(), b(), c())
loop_func <- function(letter){
obj <- f(parameter = letter)
return(c(letter, obj)
foreach(val=func_list, .combine='rbind') %dopar% {
loop_func(val)
} -> result
所以我试图让 loop_func 返回一个输出(在本例中为 obj),以及它用作 f() 函数的参数的函数。但是,我似乎无法将该函数作为字符串。
我试过as.character(substitute(letter)),但这给了我“val”。
有没有直观的获取方式:
"a" obj
从函数返回?
【问题讨论】:
-
请提供一个最小的可重现示例,即如果复制到 R 中的代码可以在没有错误的情况下执行。 1.您的
func_list似乎不是函数列表。事实上,它很可能是一个带有这些函数的返回值的向量。如果a()不返回"a",则loop_func不可能得到"a"。 2.loop_func需要关闭}并且如果您打算稍后使用obj可能应该返回一个列表。 3、f是如何定义的,返回什么?