我希望能够确定函数的参数是否是对函数的调用。可以说我有两个函数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
但是,这不是最佳选择,因为我不希望该功能的用户这样做。有什么建议吗?
答案 0 :(得分:4)
您可以使用substitute()
:
h <- function(x) is.call(substitute(x))
h(f())
# [1] TRUE