我正在尝试在软件包的Imports:文件中使用Depends:而不是DESCRIPTION,但我仍然对此有更多了解;-)

我从this post那里学到的(顺便说一句:很棒的帖子!!)是,我的软件包(例如mypkg)通过imported.pkg导入(例如Imports:)的所有内容都生活在imports:mypkg环境中,而不是附加在环境中到搜索路径。当试图找到foo附带的imported.pkg时,R在遍历搜索列表之前先查找imports:mypkg。到目前为止,一切都很好。

实际问题

如果imported.pkg(由mypkg导入)依赖于某个其他程序包(在该程序包的Depends:文件的DESCRIPTION部分中规定),我是否需要将此程序包设置为我的程序包中的Depends:依赖项?为了让R找到那个包的功能?因此,在我眼下,R似乎对此有所抱怨。

证据

似乎仅导入这样的软件包是不够的。例如,以包roxygen2CRAN)为例。导入其他软件包时,它取决于digest。我导入了它(以及digest,因为mypkg也需要它),并检查了环境imports:mypkg并列出了digest函数:"digest" %in% parent.env(asNamespace("mypkg"))返回TRUE

然而,当从属于roxygenize()的函数中运行mypkg时,R抱怨说找不到digest

最佳答案

您可以看一下我的博客:http://r2d2.quartzbio.com/posts/package-depends-dirty-hack-solution.html
现在我有一个更好,更清洁的解决方案,但尚未发布。
希望能帮助到你。

09-10 10:08