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

发布于 2024-09-10 05:57:49 字数 222 浏览 10 评论 0原文

当我加载包 debug 来调试带有 zoo 对象的脚本时,我遇到了麻烦:来自 zoo 的函数 index 得到了由 debug 包屏蔽。如何取消屏蔽index?一般来说,如何处理这些名称冲突问题呢?我们只是不将 debug 包与“zoo”一起使用?

When I loaded package debug to debug a script with zoo objects, I got trouble: function index from zoo got masked by debug package. How can I unmask index? In general, how to deal with these name colliding problems? We just do not use debug package with `zoo'?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

感性 2024-09-17 05:57:49

您可以分离具有屏蔽功能的包,然后重新附加它。它将在搜索路径中重新获得优先权:

detach("package:zoo")
library("zoo")

将来,如果你想附加一个包,同时防止它屏蔽其他函数,你可以用任意大的数字指定它在搜索路径中的位置:

library("debug", pos = .Machine$integer.max)

You can detach the package which has masked functions and then reattach it. It will regain precedence in the search path:

detach("package:zoo")
library("zoo")

In the future, if you want to attach a package while preventing it from masking other functions, you can specify its position in the search path with an arbitrary large number:

library("debug", pos = .Machine$integer.max)
最好是你 2024-09-17 05:57:49

导出的符号始终可以使用 :: 运算符进行识别:

zoo::index

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

zoo:::.onLoad

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

Exported symbols are always identifiable with the :: operator:

zoo::index

Hidden functions not declared in the namespace can still be accessed using ::: (triple-colon), and example would be

zoo:::.onLoad

which you can see even though it is not exported.

jJeQQOZ5 2024-09-17 05:57:49

它仅对您进行屏蔽,但对动物园没有屏蔽,因此当动物园函数尝试使用索引时,它仍然会首先找到自己的索引。

Zoo 还有一个 time.zoo 方法,因此如果 z 是一个 Zoo 对象,您可以使用 time(z) 代替 index(z)。

最后你可以随时参考zoo::index来确保你得到的是zoo中的那个。

Its only masked to you but its not masked to zoo so when a zoo function tries to use index it will still find its own index first.

zoo also has a time.zoo method so if z is a zoo object you can use time(z) in place of index(z).

Finally you can always refer to zoo::index to make sure you get the one in zoo.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文