[英]import all the functions of a package except one when building a package
我正在构建一个R包( mypackage ),它导入data.table和另一个包(让我们称之为myotherpackage )。
Imports: data.table, myotherpackage
位于mypackage的DESCRIPTION文件中。
myotherpackage导入dplyr,它有几个名为data.table函数的函数,所以每次加载mypackage时都会收到这样的警告:
Warning: replacing previous import 'data.table::first' by 'dplyr::first' when loading 'mypackage'
有没有办法导入data.table的所有函数,例如“first”除外? 然后,如果我需要使用它,我会在代码中使用data.table :: first。 还是有更好的方法来处理它? 每次有人进口包时,我都试图避免警告。 谢谢!
NAMESPACE文件在这里有点灵活,如编写R扩展中所述 。
两个主要的进口指令是:
import(PACKAGE)
它将命名空间中的所有对象导入到包中。 第二种选择是使用以下方法进行特定导入:
importFrom(PACKAGE, foo)
这使您可以访问foo()
而无需完全限定的引用PACKAGE::foo()
。
但这些并不是唯一的两种选择。 您还可以使用except
参数来排除少数几个导入:
import(PACKAGE, except=c(foo,bar))
它为您提供了PACKAGE命名空间的所有内容,但foo()
和bar()
。 这对于避免冲突很有用 - 就像你的情况一样。
对于roxygen,很好的了解你可以做到:
#' @rawNamespace import(PACKAGE, except = foo)
通过roxygen传递一个原始的NAMESPACE指令。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.