我试图将函数作为 args
在 do.call
. 例如::
testF <- function(a,b){
a(b)
}
ijk <- list(a = c(print, print), b = c(1,2))
do.call(testF, ijk, envir = .GlobalEnv)
#Error in a(b) : could not find function "a"
如何修正上面的代码?
其实正确的方式。我觉得问题在于你如何定义你的。a
列表中。使用 function
;也可能 list
胜过 c
.
ijk <- list(a=function(x) list(sqrt(x), x^2), b=c(4,9))
do.call(testF, ijk, envir=.GlobalEnv)
# [[1]]
# [1] 2 3
#
# [[2]]
# [1] 16 81