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

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

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

我的问题是:我可能期望 envir 的内容是什么?

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

最佳答案

默认参数被评估 within the evaluation frame of the function call ,其中 parent.frame() 是调用环境。因此 envir 的值将是一个指向调用 fn 的环境的指针。

另外,请亲自尝试一下:

debug(fn)
fn()
# debugging in: fn()
# debug at #2: {
# }
Browse[2]> envir
# <environment: R_GlobalEnv>

关于r - 何时/如何/何处解释默认参数中的 parent.frame?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15504960/

10-12 14:56
查看更多