【发布时间】:2010-02-22 09:10:12
【问题描述】:
我的问题是如何从 R 中另一个函数中调用的函数中提取变量的名称?
为了说明,这里举个例子:
a <- function(variable) {
print(deparse(substitute(variable)))
internala(substitute(variable))
}
internala <- function(variableXX) {
namex=deparse(substitute(variableXX))
print(namex)
}
调用函数a会得到以下结果:
>a(whatever)
[1] "whatever"
[1] "substitute(variable)"
这意味着我可以从a 中提取变量whatever 的名称,但不能从internala 中提取。
对此有什么想法吗?
任何帮助将不胜感激!
玛丽亚
【问题讨论】:
-
只是要清楚,你想要的行为是什么?我猜你想让
a(whatever)打印whatever两次?如果您还执行internala(whatever),您是否还希望输出为whatever?如果你调用 foo -
是的,你猜对了,我希望 a(whatever) 打印任何内容两次,internala(whatever) 打印任何内容,而且我实际卡住的地方正是你指出的,那就是如果我有另一个函数 foo
-
基于最后一种情况,您似乎想将表达式一直扩展到顶级调用,但没有进一步的?所以如果还有 foo2