如何强制R加载包,`library()`由于依赖而失败?

时间:2012-08-17 22:53:34

标签: r dependencies package loading cran

如果没有安装一些(不是至关重要的)包,那么如何强制R加载包?

动机:有时我必须在某些地方使用R,我无法自动安装所需的包。手动执行此操作非常耗时,在大多数情况下,我只需要安装包中包含的不同功能的一小部分。

在这种情况下的典型消息错误是:

> library(packageX)
Loading required package: packageY
Error: package ‘packageY’ could not be loaded
In addition: Warning messages:
In library(pkg, character.only = TRUE, logical.return = TRUE, lib.loc = lib.loc) : there is no package called ‘packageY’

Mayby' devtools'包将有所帮助。但我还没有调查过。

2 个答案:

答案 0 :(得分:2)

如果您无法安装依赖项,我认为您唯一的选择是从packageX的DESCRIPTION文件的Depends字段中删除这些包并尝试重建packageX

答案 1 :(得分:1)

您可以查看程序包的来源,以确定您需要哪些功能以及它们需要哪些依赖项。您可能希望与此部分的包的作者/维护者协作。您可以创建不具有依赖关系的软件包的私有版本以及您不需要的其他功能。

如果这仅供您个人使用,并且包的许可证允许(gpl和类似),那么您不需要作者的许可来提取您想要的那些部分。如果您想将您的包链接到此分发,那么您应该与原作者合作。我知道有几个软件包的作者只想从我的一个软件包中获得一些函数,我同意加载我的整个软件包(和依赖项)对于他们想要做的事情来说是过度的,所以我和他们合作并且他们有副本在他们的包中起作用而不需要依赖我的。当我更新其中一个功能时,我会向他们发送副本以更新他们的副本。