保护R中的函数名称

And*_*dyF 8 r

在R中是否可以保护函数名称(或一般的变量),以便它们不被屏蔽.

我最近发现,在创建名为"new"的数据框时,这可能是一个问题,该数据框掩盖了lmer使用的函数,从而阻止了它的工作.(一旦你知道问题是什么,恢复很容易,这里"rm(new)"做到了.)

Ric*_*ton 7

对于您的问题有一个简单的解决方法,而不用担心保护变量名称(虽然玩起来lockBinding看起来很有趣).如果某个函数被屏蔽,如在您的示例中,仍然可以在::操作员的帮助下调用屏蔽版本.

通常,语法是packagename::variablename.

(如果你想要的功能还没有从包中导出,那么你需要三个冒号,:::但是在这种情况下不适用.)


Vin*_*nce 4

也许使用环境!这是分隔命名空间的好方法。例如:

> a <- new.env()
> assign('printer', function(x) print(x), envir=a)
> get('printer', envir=a)('test!')
[1] "test!"
Run Code Online (Sandbox Code Playgroud)