[英]R: require(foo, lib.loc=bar) does not forward lib.loc=bar to dependencies
我有一个单独的库文件夹。 我安装了ks
,如下所示:
> install.packages('ks', lib='packages')
There is a binary version available (and will be
installed) but the source version is later:
binary source
ks 1.9.2 1.9.4
also installing the dependencies 'KernSmooth', 'misc3d', 'mvtnorm', 'rgl', 'multi cool'
现在,我想加载这些软件包。
> require(ks, lib.loc='packages')
Loading required package: ks
Failed with error: 'package 'KernSmooth' required by 'ks' could not be found'
也就是说, require
查找ks
但不查找KernSmooth
因为它没有尝试从packages
加载KernSmooth
。 我可以手动加载它:
> require(KernSmooth, lib.loc='packages')
Loading required package: KernSmooth
KernSmooth 2.23 loaded
Copyright M. P. Wand 1997-2009
Warning message:
package 'KernSmooth' was built under R version 3.1.2
我可以再次尝试require(ks, lib.loc='packages)
,但是它会告诉我下一个包misc3d
也尚未加载。
我是否必须从库文件夹中手动加载所有依赖项? 我希望它可以自动工作,即如果我require(foo, bar)
, foo
也将尝试从bar
加载其依赖项。
函数.libPaths
用于获取和设置R查找软件包的路径。 如果执行以下操作,则应该可以正常工作。
install.packages('ks', lib='packages')
.libPaths("packages")
require(ks)
实际上,如果您打算大量使用"packages"
,则甚至可以在安装前对其进行设置,这默认情况下会使所有新软件包都放在那里。
.libPaths("packages")
.libPaths()
[1] "/home/christofer/packages" "/usr/local/lib/R/site-library" [3] "/usr/lib/R/site-library" "/usr/lib/R/library"
install.packages('ks')
Installing package into '/home/christofer/packages' (as 'lib' is unspecified) ...
require(ks)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.