如何控制roxygen2记录的R包中的进口订单?

如何控制roxygen2记录的R包中的进口订单?,r,import,roxygen2,R,Import,Roxygen2,roxygen2将根据我的包文档中的@import指令自动构建名称空间文件。但显然,无论我如何对@import指令排序,它总是按字母顺序添加导入 这给我带来了问题:我正在处理一个需要导入IRanges和data.table的包。这两个包都定义了一个名为shift的函数,因此导入顺序很重要(环境中的shift函数将来自最后加载的包) 在我的roxygen2代码中,我说: @import data.table @import IRanges 我将数据.table放在第一位,因为我希望IRanges

roxygen2
将根据我的包文档中的
@import
指令自动构建
名称空间
文件。但显然,无论我如何对
@import
指令排序,它总是按字母顺序添加导入

这给我带来了问题:我正在处理一个需要导入
IRanges
data.table
的包。这两个包都定义了一个名为
shift
的函数,因此导入顺序很重要(环境中的
shift
函数将来自最后加载的包)

在我的roxygen2代码中,我说:

@import data.table
@import IRanges
我将
数据.table
放在第一位,因为我希望
IRanges
中的
shift
函数覆盖
数据.table
中的函数,但是
@import
行的顺序似乎并不重要,由于
roxygen2
总是先将
IRanges
文件导入行放入
命名空间中。然后我得到这个信息:

2:将以前的导入“IRanges::shift”替换为“data.table::shift” 加载时

我希望它是另一种方式;但实际上,即使我碰巧在这里运气好,我也不想依靠字母顺序来工作。有没有办法控制这一切


编辑:我相信
data。table
IRanges
之后,因为
I
是大写的。

为什么不通过
data调用函数呢。table::shift
IRanges::shift
?是的,我可以这样做,这就是我正在做的。这是这个直接示例的基本解决方案,但是关于进口订单的更大问题有答案吗?使用pkgname::funname显式不仅仅是一个“基本解决方案”—最好是精确地显式,以避免冲突。不要依赖进口订单或其他任何东西。明确一点。六个月后,当你回去想知道函数从何而来时,你会感谢自己。