【问题标题】:install a R package needed for your package upon installation在安装时安装您的包所需的 R 包
【发布时间】:2012-01-10 13:23:40
【问题描述】:

我正在开发一个 R 包,它依赖于用户系统上安装的另一个 R 包。

我在DESCRIPTION文件中添加了一个Depends:pkgname,在NAMESPACE中添加了import(pkgname)。我希望这样做是检查 pkgname 是否已安装,如果未安装,则 install.packages(pkgname,repos="CRAN 或 Rforge 或软件包所在的任何地方") 如果没有。

但是,在尝试安装我的包时,我得到了错误:

    ERROR: dependency 'pkgname' is not available for package 'mypkg'

有谁知道如何实现 pkgname 的安装,pkgname 应该还没有在系统上吗?

非常感谢

【问题讨论】:

  • 如果你从一个包中导入,你应该把Imports:pkgname放在DESCRIPTION中,而不是依赖。如果软件包是从 CRAN 安装的,它将起作用。

标签: r import package cran depends


【解决方案1】:

在 R CMD INSTALL 的帮助文件中,没有提到如果依赖项需要安装附加包的标志。如果你将你的包提交给 CRAN,你的问题就解决了,因为 install.packages 然后解决了任何依赖关系。 install.packages 不支持从本地文件安装时解决依赖关系。

在您提交给 R-forge 或 CRAN 之前,我认为在 README 文件中添加一个注释就足够了,即需要存在一些额外的包。您甚至可以发布包含所需 install.packages 命令的 R 代码的 sn-p。

【讨论】:

  • 谢谢!我一定会添加澄清文档,说明人们需要做什么才能使程序包正常工作。真正有帮助的是知道一旦包在 CRAN/R-forge 上,导入就会起作用:)。
  • 是的,但请注意,从 R-forge 安装依赖于 CRAN 的软件包存在一些问题(我认为:也许有人可以评论解决方法),反之亦然...
  • 我的一些依赖甚至可能依赖于生物导体^^
  • 大声笑,那么最好编写一个好的安装脚本,以正确的顺序安装所有适当的包。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-02-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-16
  • 1970-01-01
相关资源
最近更新 更多