【发布时间】:2014-04-24 12:58:13
【问题描述】:
如果我想查看传递给函数的表达式,我可以使用substitute 检索它。
f <- function(x)
{
substitute(x)
}
f(sin(pi))
## sin(pi)
(f返回一个call类的对象。substitute通常与deparse结合起来变成一个字符向量,但我这里不关心。)
我想用... 中的参数重复这一点。此尝试仅返回第一个参数:
g <- function(...)
{
substitute(...)
}
g(sin(pi), cos(pi / 2))
## sin(pi)
此尝试引发错误:
h <- function(...)
{
lapply(..., subsitute)
}
h(sin(pi), cos(pi / 2))
## Error in match.fun(FUN) :
## 'cos(pi/2)' is not a function, character or symbol
此尝试引发不同的错误:
i <- function(...)
{
lapply(list(...), substitute)
}
i(sin(pi), cos(pi / 2))
## Error in lapply(list(...), substitute) :
## '...' used in an incorrect context
如何检索我传递给... 的表达式?
【问题讨论】:
标签: r parsing arguments expression substitution