【发布时间】:2011-07-07 16:30:47
【问题描述】:
我在运行 R 2.11.1 的干净 Debian 安装上加载 sde 包时遇到问题。但是,我已经在其他一些包中看到了这种行为,所以我认为它不仅仅针对这个包。这是一个难题的例子:
>install.packages("sde", lib.loc=libPath)
... 安装 sde,以及它所依赖的包:zoo、fda
> library(sde, lib=libPath)
Loading required package: fda
Error: package 'fda' 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 'fda'
好的,这很奇怪。我看到 fda 正在安装。所以我手动加载依赖:
> library(zoo, lib=libPath)
> library(fda, lib=libPath)
Loading required package: splines
好的,那行得通。现在让我们试试 sde:
> library(sde, lib=libPath)
To check the errata corrige of the book, type vignette("sde.errata")
WTF?它加载得很好?!?
那么为什么我可以手动加载包,但 R 没有自动提取它们?
让我更加困惑的是,我在调试过程中发现,如果我不使用lib=libPath,那么一切正常。所以看起来使用包的自定义路径搞砸了这一切......但是为什么呢?
【问题讨论】:
-
如果你在 sde 之前加载 zoo 会发生什么,因为 fda 似乎需要它?
-
嗯。
lib是否正确传递到依赖加载阶段...? -
如果我在 R 中进行操作,事情不会改变。我仍然必须手动安装 fde。但是,如果我 apt-get 安装它,一切正常。
-
本,我想知道。
-
什么是
libPath和.libPaths()? fda 和 zoo 在libPath吗?