2016-07-13 21 views
-1

我在系統級安裝了一個庫(本例中爲ggplot2)。我想將ggplot2及其所有依賴關係安裝到R_LIBS_USER變量中指定的新目錄中。當我運行install.packages('ggplot2', dependencies=TRUE)時,它似乎會製作ggplot2目錄的副本,但沒有其他依賴關係。有什麼方法可以確保ggplot2所依賴的其他軟件包使其進入我在R_LIBS_USER中指定的目錄嗎?將依賴R包安裝到R_LIBS_USER目錄中

+0

'install.packages'有一個'lib'參數....你試過嗎?如果你想要當前目錄中的兩個或更多位置的第二個,那麼我將發佈代碼作爲可能的答案。 –

+0

我確實嘗試過,但那也沒有奏效。 lib參數在未指定時默認爲.libPaths()中的第一個元素,它是我爲R_LIBS_USER傳遞的目錄 – jamesatha

+0

您所說的依賴關係放在不在.libPaths()上的位置?難以置信。你是RStudio用戶嗎? –

回答

0

也許這......假設你的$ R_LIBS_USER環境變量已經被搜索路徑中的第二個位置以某種方式由另一個位置調用。 (請與.libPaths()

install.packages('ggplot2', lib= .libPaths[2], dependencies=TRUE) 

或者:

install.packages('ggplot2', lib= Sys.getenv(("R_LIBS_USER"), dependencies=TRUE) 

評論認爲,問題是,進口產品已經是其中R是搜索庫...所以不會受到不必要的安裝。 DESCRIPTION文件的Depends條目中沒有包,但在Imports部分中有名稱的包。爲了從安裝的軟件包依賴閱讀:

packageDescription("ggplot2", fields = c("Depends","Imports")) 

#----------- 
Depends: R (>= 3.1) 
Imports: digest, grid, gtable (>= 0.1.1), MASS, plyr (>= 
     1.7.1), reshape2, scales (>= 0.3.0), stats 

-- File: /Library/Frameworks/R.framework/Versions/3.3/Resources/library/ggplot2/Meta/package.rds 
-- Fields read: Depends, Imports 

> str(packageDescription("ggplot2", fields = c("Depends","Imports"))) 
List of 2 
$ Depends: chr "R (>= 3.1)" 
$ Imports: chr "digest, grid, gtable (>= 0.1.1), MASS, plyr (>= 1.7.1),\nreshape2, scales (>= 0.3.0), stats" 
- attr(*, "class")= chr "packageDescription" 
- attr(*, "fields")= chr [1:2] "Depends" "Imports" 
- attr(*, "file")= chr "/Library/Frameworks/R.framework/Versions/3.3/Resources/library/ggplot2/Meta/package.rds" 

的downvote表明,有人不喜歡有這些事實指出,但是......事實就是事實。