gpt4 book ai didi

r - 在构建包时导入除一个包外的所有功能

转载 作者:行者123 更新时间:2023-12-04 17:15:15 26 4
gpt4 key购买 nike

我正在构建一个 R 包( mypackage ),它导入 data.table 和另一个包(我们称之为 myotherpackage )。
Imports: data.table, myotherpackage 的描述文件中我的包裹 .

myother包裹导入 dplyr,它有几个类似 data.table 函数的函数,所以每次加载 时我都会收到这样的警告我的包裹 :
Warning: replacing previous import ‘data.table::first’ by ‘dplyr::first’ when loading ‘mypackage’
有没有办法导入data.table的所有功能,例如“first”除外?如果需要,我会在代码中使用 data.table::first。
或者有没有更好的处理方法?每次有人导入包时,我都试图避免警告。谢谢!

最佳答案

NAMESPACE 文件在这里有点灵活,如 Writing R Extensions 中所述。 .

两个主要的导入指令是:

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 指令。

关于r - 在构建包时导入除一个包外的所有功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51899220/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com