微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 R 中创建包时如何处理来自其他包的命名空间依赖关系?

如何解决在 R 中创建包时如何处理来自其他包的命名空间依赖关系?

我正在用 R 创建自己的包。在我的包中,我使用了 ggnet2 包中的 Ggally 函数。我正在尝试准备好我的包 CRAN,我使用了 devtools 包中的一堆测试。

我的问题是,当我运行以下 devtools 测试时出现错误

library(devtools)

check_win_release()
check_win_devel() 

被抛出的错误是:

Error: please install the package 'network'.  install.packages('network') 
  Backtrace:
      x
   1. \-myPackage::plotNetwork(vi) test_plots.R:34:2
   2.   +-base::suppressMessages(...)
   3.   | \-base::withCallingHandlers(...)
   4.   \-Ggally::ggnet2(...)
   5.     \-Ggally:::require_namespaces(c("network","sna","scales"))

现在,当我查找 ggnet2 的源代码时,第一行代码是:

 require_namespaces(c("network","scales"))

在我的 NAMESPACE 文件中,我导入了 ggnet2 函数以及 ggplot2,如下所示:

import(ggplot2)
importFrom(Ggally,ggnet2)

而且我的包内的 Ggally 文件中的 Imports 字段下还有 ggplot2DESCRIPTION

我已尝试将 networksna 添加到我的 suggests 文件中的 DESCRIPTION 字段,但错误仍然存​​在(我正在使用 scales在我的包中的其他地方打包,所以我单独导入)。

错误来自我与 devtools::test() 一起使用的测试文件,但是(在我的机器上安装了这些软件包)我猜当我运行 check_win_release() 时,测试的机器正在执行没有所需的包!?

我想知道如何解决这个错误?或者在从其他包的其他函数导入需要命名空间的函数时,最佳实践是什么?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。