如果未安装,请安装软件包(库)

时间:2013-10-25 17:48:14

标签: r install package

我在R中使用了几个软件包,但是我在一台机器上运行该脚本,该机器可能已经安装了部分/全部软件包。

这些套餐包括zooquantmoddata.table,...等等。

这是我尝试过的: 有没有办法检查是否安装了这些软件包,如果没有安装它?我不希望R浪费时间重新安装任何已经存在的软件包。

这就是我的尝试:

pckg = c("zoo", "tseries", "quantmod", "MASS", "graphics", "plyr", "data.table", "gridExtra") 

 is.installed <- function(mypkg){
    is.element(mypkg, installed.packages()[,1])
 } 

 for(i in 1:length(pckg)) {
    if (!is.installed(pckg[i])){
         install.packages(pckg[i])
     }
 }

有更好的方法吗?

另外,我需要自动为安装设置镜像。我不知道该怎么做。

谢谢!

1 个答案:

答案 0 :(得分:10)

我使用了这个便利功能,而不是library如果缺少那么安装包,然后require s:

usePackage <- function(p) {
    if (!is.element(p, installed.packages()[,1]))
        install.packages(p, dep = TRUE)
    require(p, character.only = TRUE)
}

如果您需要全局选择CRAN镜像,可以采用以下方法:

r <- getOption("repos")
r["CRAN"] <- "http://cran.us.r-project.org"
options(repos = r)
rm(r)