说实话,我只是在这里偷懒,但也许有一天有人可以从这里的答案中受益。
假设我定义了一个函数,如:
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/