我在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])
}
}
有更好的方法吗?
另外,我需要自动为安装设置镜像。我不知道该怎么做。
谢谢!
答案 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)