背景

我正在创建一个依赖于旧程序包的新程序包,并在文件newpackage/DESCRIPTION中指出了这种依赖性。

此外,


oldpackage安装在目录~/lib/R
我的.Rprofile包括.libPaths("~/lib/R")


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



尽管可以在不指定库的情况下加载程序包,但R CMD check newpackage会给出错误消息,表明它无法对旧程序包进行优化:

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.


问题:


为什么R无法找到包?
我可以在DESCRIPTION文件中指定库位置吗?

最佳答案

关于问题1),它既是FAQ,又有点令人讨厌。 R CMD check在原始模式下运行,因此不会找到用户级库。我记得在通话中设置R_LIBS =“ ....”会有所帮助,因此请尝试一下。

关于问题2),否,您不能在DESCRIPTION中指定位置。这很有意义,因为该文件需要“在任何地方”工作,而您的位置信息是计算机本地的。

07-24 09:52