我的问题是关于以下代码:
myfunc <- function(v1) {
deparse(substitute(v1))
}
myfunc(foo)
[1] "foo"
我在?deparse
和?substitute
中输入了R并获得了以下内容:
deparse = Turn unevaluated expressions into character strings.
和
substitute = returns the parse tree for the (unevaluated) expression expr,
substituting any variables bound in env.
我似乎并不真正理解这种语言。有人能够简化这些描述的技术方面,以便我可以开始理解这两个函数如何协同工作以允许我们做一些很酷的事情,比如访问对象的变量名吗?
答案 0 :(得分:4)
我也很努力(d)。来自myplot()
的{{1}}示例很有帮助。在那里,他们定义:
?substitute
调用
myplot <- function(x, y)
plot(x, y, xlab = deparse(substitute(x)),
ylab = deparse(substitute(y)))
给出
而替代
myplot(x=1:10, y = rnorm(10))
给出
希望这能显示x = 1:10
y = rnorm(10)
plot(x, y, xlab = x, ylab = y)
的用途。在deparse(substitute())
版本中,plot
和xlab
参数是用于生成ylab
和x
的任何内容的输出。 y
知道传递&#34;函数实际参数的字符串版本&#34;适用于myplot
和xlab
。 (引自ylab
)