背景
我正在创建一个依赖于旧程序包的新程序包,并在文件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中指定位置。这很有意义,因为该文件需要“在任何地方”工作,而您的位置信息是计算机本地的。