1
在R中是否有一个函数,它将对待评估变量并在类为function
时调用它。在一个原始函数中是否有`eval()`和`do.call()`?
a <- 1
b <- function() 2
因此,我希望从评价a
和do.call(b)
自动理解是第二个是功能和评估其返回。
当然,我可以用is.function()
进行检查,并致电do.call
,在其他情况下,请致电eval
,但我认为它可能已经完成。
> eval(a)
[1] 1
> do.call(a, args = list())
Error in do.call(a, args = list()) :
'what' must be a character string or a function
> eval(b)
function() 2
> do.call(b, args = list())
[1] 2
我确实希望
a <- 1
b <- function() 2
> someFun(a)
1
> someFun(b)
2
我老实说不太清楚你在问什么。你能改说吗?预期产出是多少? 'foo(a)== 1'和'foo(b)== 2'?如果是这样,这将是一个应用程序?你为什么要'foo'成为一个原始的? –
@KonradRudolph我已更新问题。其实这只是为了我自己的好奇心。我有函数列表,我按顺序调用某种'stream'。以相同的方式处理变量和功能会很方便。因此,函数列表和值列表将无法区分。 –
@ 42-谢谢你,船长 –