【问题标题】:Install package (library) if not installed [duplicate]如果未安装,请安装包(库)[重复]
【发布时间】:2013-11-04 22:57:19
【问题描述】:

我在 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])
     }
 }

有没有更好的方法?

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

谢谢!

【问题讨论】:

    标签: r installation package


    【解决方案1】:

    我有这个方便的功能,而不是library,如果它丢失,它会安装包,然后requires 它:

    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)
    

    【讨论】:

    • 在我看来 require() 的行为取决于 R 编辑器。虽然require() 在 RKward 中按上述方式工作,但它没有使用 RStudio。相反,RStudio 会给出警告消息。因此require(XXX) || install.packages("XXX") 更安全,因为无论您使用哪种编辑器,它都始终有效。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-02-22
    • 1970-01-01
    • 2023-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-15
    相关资源
    最近更新 更多