我需要一个函数,它接受任意数量的参数并将它们作为表达式存储在一个变量中而不评估它们。我设法做到了,match.call
但似乎有点“笨拙”。
foo <- function(...) {
expr <- match.call()
expr[[1]] <- expression
expr <- eval(expr)
# do some stuff with expr
return(expr)
}
> bla
Error: object 'bla' not found
> foo(x=bla, y=2)
expression(x = bla, y = 2)
澄清
为了澄清,我在问如何编写一个行为类似于expression()
. expression()
由于太长无法解释的原因,我不能直接使用。