在自己的包中导入其他包的功能非常容易(example),但这需要对该包具有硬依赖关系(
Imports
文件中的DESCRIPTION
)。就我而言,这是一个建议的软件包,因此我收到警告:'::' or ':::' import not declared
R CMD 检查。
所以现在,我正在本地重新创建函数,但是这是有问题的,因为加载两个包时,还会出现另一个警告
The following objects are masked from [the other package]
。它们是相同的,所以这不是一个大问题,但足以令人烦恼。我无法想象还有比这更好的做法吗?
如果我们需要演示的实际代码,这里是我的包的有问题的导入:https://github.com/rempsyc/lavaanExtra/blob/main/R/save_as_x.R
从技术上讲,没有“正确”的方法可以做到这一点,因为 CRAN 认为导入未导出函数的政策不好。 但是,如果您对此感到满意,您仍然可以使用
get
或
utils::getFromNamespace()
:if (requireNamespace("package name", quietly = TRUE)) {
ext_fun <-get("fun envir = asNamespace("package name"))
}