【发布时间】:2013-10-02 08:05:00
【问题描述】:
在 R 中使用绑定和环境调整,我们有这 3 个功能:
-
lockEnvironment(env)锁定 env,因此您无法向 env 添加新符号。 -
lockBinding(sym, env)将 sym 锁定在 env 中,因此您无法修改它 -
unlockBinding(sym, env)放松后一个锁。
但是我怎样才能解锁环境呢?也许我错过了一些东西,但看起来 R 没有公开 unlockEnvironment 函数或等效机制来解锁 env ?这有什么设计原因吗?
这里有一个如何使用这个函数的例子:
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
【问题讨论】:
-
至少从 R-3.5.1 开始,我既没有看到可靠的答案,也没有明显添加
unlockEnvironment()。您找到任何解决方案或解释了吗?