【问题标题】:error with R CMD check because of package dependency由于包依赖性,R CMD 检查出错
【发布时间】:2011-06-21 22:55:46
【问题描述】:

背景

我正在创建一个依赖于 oldpackage 的 newpackage,并在文件 newpackage/DESCRIPTION 中指出了这种依赖关系。

此外,

  • oldpackage安装在目录~/lib/R

  • 我的.Rprofile 包括.libPaths("~/lib/R")

    • 因此,我可以在不指定库位置的情况下成功加载 oldpackage,例如,在 R 中使用命令 library(oldpackage)

尽管能够在不指定库的情况下加载包,R CMD check newpackage 会给出一个错误,表明它不能正常oldpackage:

checking whether the package can be loaded ... ERROR 
Loading required package: oldpackage
Error: package 'oldpackage' could not be loaded
In addition: Warning message:
In library(pkg, character.only = TRUE, logical.return = TRUE, lib.loc = lib.loc) :
  there is no package called 'oldpackage'
Execution halted


It looks like this package has a loading problem: see the messages for
    details.

问题:

  1. 为什么 R 找不到包?

  2. 我可以在说明文件中指定库位置吗?

【问题讨论】:

    标签: r compilation package


    【解决方案1】:

    关于问题 1),它既是一个常见问题解答,又有些烦人。 R CMD check 在 vanilla 模式下运行,因此它不会找到用户级库。我记得,在通话中设置 R_LIBS="...." 会有所帮助,所以试试吧。

    关于问题 2),不,您不能在说明中给出位置。这是有道理的,因为该文件需要“无处不在”,而您的位置信息是您机器的本地信息。

    【讨论】:

    • Re 1) 是的,这很烦人,设置 R_LIBS 环境变量是一个(?)答案。我在我的.bashrc 中有R_LIBS=$HOME/R/libs 和export R_LIBS(连续行)在我的/home/username 中处理这个问题,而不是在每次通话的基础上记住。
    • @Gavin 该解决方案具有预期的效果。鉴于 Dirk 的回答,这正是我正在寻找的解决方案。
    猜你喜欢
    • 2013-03-24
    • 1970-01-01
    • 2021-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多