R:require(foo,lib.loc=bar)不将lib.loc=bar转发给依赖项
我有一个单独的图书馆文件夹。我安装了如下R:require(foo,lib.loc=bar)不将lib.loc=bar转发给依赖项,r,R,我有一个单独的图书馆文件夹。我安装了如下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', 'm
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
,但不查找kernsooth
——因为它没有尝试从包中加载kernsooth
。我可以手动加载它:
> 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()
在尝试具有依赖项的不同软件包时,如np
,工作正常。问题可能特定于ks
我们可以使用可用的包()[“ks”,“dependens”]
,一点正则表达式,然后在循环中安装?我也有同样的问题,它不是针对ks的。
[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)