r - 确定函数参数是否是函数调用

标签 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

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

最佳答案

您可以使用substitute():

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

关于r - 确定函数参数是否是函数调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52937887/

相关文章:

ROracle 未获取全文变量

r - R中将一个向量拆分为多个向量

r - 在 R 中的随机森林中提取树的每个最终节点的类分布

r - 调用序列化 R 函数时出错

r - 在 Shiny 中格式化sliderInput的数字输出

javascript - R 中的 "Icon"(ISOTYPE) 图表在 Javascript 中 Shiny

r - 如何将字符串中的所有数字提取为向量

r - 使用 rtweet 包中的 Lookup_coords() 函数获取国家/地区位置坐标

r - 根据其他列表中的列名匹配从列表中填充矩阵

parsing - 用于 R 的 Lex 和 YACC 类工具?