【发布时间】:2016-07-19 17:05:43
【问题描述】:
R 中来自不同包的命名空间之间的名称冲突可能很危险,不幸的是,package::function 的使用在 R 中没有得到推广......
难道没有一个函数可以重置包命名空间相对于当前加载的所有其他命名空间的优先级吗?
当然我们可以detach 然后重新加载包,但是没有其他更实用(单命令)的方式吗?
因为我经常在我的 R 会话中遇到许多包和名称冲突,所以我使用以下函数来做到这一点:
set_precedence <- function(pckg) {
pckg <- deparse(substitute(pckg))
detach(paste("package", pckg, sep = ":"), unload=TRUE, character.only=TRUE)
library(pckg, character.only=TRUE)
}
# Example
set_precedence(dplyr)
没有内置方法可以在单个命令中实现这一点?
或者一种不暗示detaching 和重新加载包的方式,以防加载繁重,并直接在命名空间上工作?
【问题讨论】: