【问题标题】:For an R package, how to efficiently move a package from Depends to Imports对于 R 包,如何有效地将包从 Depends 移动到 Imports
【发布时间】:2021-01-07 00:31:36
【问题描述】:

假设我有一个包,在说明文件的 Depends 中有 5 个包,我刚刚意识到由于不可避免的导入冲突开始流行,在 Depends 中有这么多包不是一个好习惯随着函数导入数量的增加。我想搬家,只说包pkgImports,但我不知道我的包中正在使用pkg 的哪些功能。理想情况下,我应该对包源代码进行完全覆盖的单元测试,并且只需从依赖项中删除pkg,我将从could not find function "foo" 的测试错误中识别pkg 特定的导入。但不幸的是,我没有那么广泛的测试覆盖率。我想知道是否有比通过所有包代码来识别这些导入更有效的方法。

【问题讨论】:

  • @Al_J_Abadi 如果答案解决了您的问题,您应该接受它。见here

标签: r dependencies r-package


【解决方案1】:

这很简单。改变

Depends: pkgA, pkgB, pgC

Imports: pkgA, pkgB, pgC

并将其添加到 NAMESPACE 文件中

import("pkgA")
import("pkgB")
import("pkgC")

这将全局导入所有导出的符号,以便您可以像以前一样继续。

您也可以选择性地导入通过

importFrom("pkgA", "func1", "func2", "func3")

如果你运行R CMD check,它实际上会(非常有帮助地)告诉你哪些函数需要这个。第二种方法更精确一些,但设置工作量更大。

而且我认为我们没有删除“虚假进口”的工具。找出可能未使用的导入可能是您必须手动检查的事情(但尝试删除一个并查看它是否仍然构建+检查正常)。

【讨论】:

  • 谢谢,@dirk-eddelbuettel。 import('pkg') 方法仍然会引发冲突警告,运行 R CMD check 应该可以解决问题。
猜你喜欢
  • 2015-05-18
  • 2013-04-21
  • 1970-01-01
  • 2012-01-28
  • 2017-06-27
  • 1970-01-01
  • 2018-05-17
  • 2016-05-02
相关资源
最近更新 更多