3

说实话,我只是在这里偷懒,但也许有一天有人可以从这里的答案中受益。

假设我定义了一个函数,例如:

fn<-function(envir=parent.frame())
{
    #do something with envir
}

我的问题是:我希望成为 envir 的内容是什么?

上下文:我有一个相当长的函数 f1,其中包含对 parent.frame 的调用。现在,我想将该函数的一部分(包含 parent.frame 调用)提取到一个新的辅助函数 f2(然后由 f1 调用),并且我想确保 f1 与以前一样。

4

1 回答 1

3

默认参数在函数 call 的评估框架内进行评估,从那里parent.frame()是调用环境。envir因此, 的值将是一个指向fn被调用环境的指针。

另外,请亲自尝试一下:

debug(fn)
fn()
# debugging in: fn()
# debug at #2: {
# }
Browse[2]> envir
# <environment: R_GlobalEnv>
于 2013-03-19T16:29:25.343 回答