在 R 中使用绑定(bind)和环境调整,我们有这 3 个功能:
lockEnvironment(env)
锁定 env,因此您无法向 env 添加新符号。 lockBinding(sym, env)
将 sym 锁定在 env 中,因此您无法修改它 unlockBinding(sym, env)
放松后一个锁。 但是我怎样才能解锁环境呢?也许我错过了一些东西,但看起来 R 没有公开
unlockEnvironment
解锁环境的功能或等效机制?这有什么设计原因吗?下面是如何使用此功能的示例:
e <- new.env()
lockEnvironment(e)
get("x",e)
assign("x",2,envir=e)
lockBinding("x", e)
get("x",e)
unlockBinding("x", e)
assign("x",3,envir=e)
## how to relese e lock?
unlockEnvironment(e) ## the function doesn't exist
最佳答案
我认为你能做的最好的就是创造一个新的解锁环境。您可以复制所有字段,也可以使现有字段成为新字段的父字段。这意味着所有现有的变量都会被继承。
unlockEnvironment <- function (env) {
return (new.env(parent=env))
}
e <- unlockEnvironment(e)
关于r - 如何解锁R中的环境?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19132492/