确定函数参数是否为函数调用

时间:2018-10-22 21:18:45

标签: r

我希望能够确定函数的参数是否是对函数的调用。可以说我有两个函数f()g()

f <- function() "foo" 

g <- function(x){
  ???
} 

我希望输出到呼叫,如下所示:

g(f())
#> [1] TRUE
g("bar")
#> [1] FALSE

我可以通过引用函数参数来使其工作:

f <- function() "foo" 

g <- function(x) is.call(x)

g(quote(f()))
#> [1] TRUE
g(quote("bar"))
#> [1] FALSE

但是,这不是最佳选择,因为我不希望该功能的用户这样做。有什么建议吗?

1 个答案:

答案 0 :(得分:4)

您可以使用substitute()

h <- function(x) is.call(substitute(x))
h(f())
# [1] TRUE