我的问题是关于以下代码:
myfunc <- function(v1) {
deparse(substitute(v1))
}
myfunc(foo)
[1] "foo"
我输入了?deparse
and ?substitute
代入R,得到:
deparse = Turn unevaluated expressions into character strings.
and
substitute = returns the parse tree for the (unevaluated) expression expr,
substituting any variables bound in env.
我似乎不太懂这种语言。有人能够简化这些描述的技术方面,以便我能够开始理解这两个函数如何协同工作,让我们能够做一些很酷的事情,比如访问对象的变量名?
我也为此苦苦挣扎。这myplot()
示例来自?substitute
有帮助。在那里,他们定义:
myplot <- function(x, y)
plot(x, y, xlab = deparse(substitute(x)),
ylab = deparse(substitute(y)))
calling
myplot(x=1:10, y = rnorm(10))
gives
而替代方案
x = 1:10
y = rnorm(10)
plot(x, y, xlab = x, ylab = y)
gives
希望这表明了什么deparse(substitute())
是用来。在里面plot
版本,该xlab
and ylab
参数是用于生成的任何内容的输出x
and y
. myplot
知道将“实际参数的字符串版本传递给函数”xlab
and ylab
。 (引自?substitute
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)