如何访问存储在R

时间:2015-10-30 21:04:04

标签: r

我最近一直在使用的R的一个特性(感谢R.cache)是函数声明其他函数的能力。特别是,当人们这样做时,人们可以将一些变量作为结果函数的固有部分。

例如:

functionBuilder <- function(wordToSay) {
  function() {
    print(wordToSay)
  }
}

可以构建这样的函数:

functionToRun <- functionBuilder("hello nested world")

然后functionToRun()会产生"hello nested world"。但是如果你只看一下functionToRun(即打印它),你会看到匹配functionBuilder的代码。你还会看到functionToRun有一个环境。如何访问存储在wordToSay内的functionToRun的值?

起初我尝试过: get("wordToSay",env=functionToRun) ...但是functionToRun不是一个环境,不能通过as.environment转换为环境。同样,由于functionToRun不是环境,因此您无法附加或使用with

1 个答案:

答案 0 :(得分:2)

我发现environment是获取和设置环境的访问器函数,以一种分析names获取和设置名称属性的方式。因此,获取functionToRun环境的代码为environment(functionToRun),因此,我们可以使用行wordToSay访问get("wordToSay",environment(functionToRun))