【发布时间】:2015-05-12 14:28:51
【问题描述】:
通常在 R 中,函数首先创建一个新环境并在其中执行它的工作。我想要一个函数来定义/重新初始化函数的父环境可以访问的很多东西。
我知道我可以将<<- 运算符用于特定变量,但这里我有很多函数、变量,甚至是定义的环境,我想选择一个参数在函数中是否使用父环境。
目前,我正在调用该函数,然后根据需要附加它的环境,如下所示:
init <- function(){
things <- 0
ICI <<- environment()
success <- TRUE
return(success)
}
init();attach(ICI)
它工作正常,但他们是一种将函数的当前环境更改为父环境的方法,以便我可以定义函数的参数来打开或关闭此行为吗?
【问题讨论】:
-
environment和parent.env都有设置器,例如environment(fun) <- value;不过,手册页说要小心。 -
@Neal Fultz 虽然两者都不允许将当前环境设置为父环境之一。
parent.env(ICI) <- ICI导致冻结(我猜是无限递归)。 -
environment(ICI) <- parent.env(ICI)也许?