说实话,我只是在这里懒惰,但也许有一天会有人从这里的答案中获利。
假设我定义了一个函数:
fn<-function(envir=parent.frame())
{
#do something with envir
}
我的问题是:我期望什么是envir的内容?
上下文:我有一个相当长的函数f1,它包含对parent.frame的调用。现在,我想将该函数的一部分(包含parent.frame调用)提取到一个新的辅助函数f2(然后由f1调用),并且我想确保f1与之前的相同。
答案 0 :(得分:3)
默认参数的评估为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>