如何在do.call中传递函数作为args?

问题描述 投票:0回答:1

我试图将函数作为 argsdo.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"

如何修正上面的代码?

r do.call
1个回答
1
投票

其实正确的方式。我觉得问题在于你如何定义你的。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
© www.soinside.com 2019 - 2024. All rights reserved.