如何控制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显式不仅仅是一个“基本解决方案”—最好是精确地显式,以避免冲突。不要依赖进口订单或其他任何东西。明确一点。六个月后,当你回去想知道函数从何而来时,你会感谢自己。