9

我在 R 中使用了几个包,但我在一台机器上运行脚本,该机器可能已经或可能没有安装一些/所有包。

这些包是zoo, quantmod, data.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])
     }
 }

有没有更好的方法来做到这一点?

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

谢谢!

4

1 回答 1

12

我有这个方便的功能,我使用它而不是library安装包,如果它丢失了,那么require它:

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)
于 2013-10-25T19:35:43.347 回答