2016-07-13 26 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表明,有人不喜欢有这些事实指出,但是......事实就是事实。