由于搜索路径上的名称冲突,如何在R中取消屏蔽函数

aha*_*ala 10 r package search-path name-collision

当我加载包debug来调试带有zoo对象的脚本时,我遇到了麻烦:函数index来自zoodebug包掩盖.我该怎么解开index?一般来说,如何处理这些名称冲突问题?我们只是不使用debug"动物园"包?

Lio*_*nry 11

您可以卸载具有屏蔽功能的软件包,然后重新加载它.它将在搜索路径中重新获得优先级:

unloadNamespace("zoo")
library("zoo")
Run Code Online (Sandbox Code Playgroud)

将来,如果要加载包,同时阻止其屏蔽其他函数,可以在搜索路径中使用任意大数字指定其位置:

library("debug", pos = .Machine$integer.max)
Run Code Online (Sandbox Code Playgroud)


Dir*_*tel 10

导出的符号始终可由::运营商识别:

zoo::index
Run Code Online (Sandbox Code Playgroud)

仍然可以使用:::(三重冒号)访问未在命名空间中声明的隐藏函数,例如

zoo:::.onLoad
Run Code Online (Sandbox Code Playgroud)

你可以看到它,即使它没有导出.