[英]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.