【发布时间】:2011-12-15 15:12:03
【问题描述】:
我的问题如下。给定以下函数:
spam <- function() {
cat("eggs\n")
}
bla <- spam()
我想找到函数返回其内容的对象的名称。在示例bla <- spam() 中,这将是bla。使用match.call 我可以找到执行的调用:
match.call()
function() {
cat("eggs\n")
}
然而,this 不包括函数返回的对象的名称。我在 R-help 列表、google 和 SO 上四处寻找,但找不到任何有用的东西。任何建议如何进行?
背景 从回复中,我了解到我想要的有点深奥。我会解释我来自哪里,这可能会阐明我的动机。我正在使用的上下文与测试有关,更具体地说,是测试某个对象是否随时间变化(例如模型输出)。
通常用户会编写一堆代码来生成一个对象,保存它并随着时间的推移将保存的对象与新生成的对象进行比较。用户可以使用以下函数来做到这一点:
spam <- testReferenceChange(expression)
通常,此函数将读取引用并生成一个新对象,用户可以相互比较。为了重新生成参考文件,我想使用完全相同的代码。我通过更改全局选项(参见options 和getOption)、recalculate 来做到这一点。我们在重新计算模式下运行这个函数,新的引用被存储。现在我的问题的原因。在保存对文件的引用(使用save())时,我想使用用户返回到的对象的名称,结合日期来创建一个唯一的名称。
【问题讨论】:
-
spam不知道它将被分配到哪里,甚至无法“看到”将赋予其结果的(未来)名称。名称的分配由<-完成。