Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R:require(foo,lib.loc=bar)不将lib.loc=bar转发给依赖项_R - Fatal编程技术网

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)