首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在运行install.packages()之前检查已安装的软件包

在运行install.packages()之前检查已安装的软件包
EN

Stack Overflow用户
提问于 2012-02-18 21:35:34
回答 15查看 196.8K关注 0票数 164

我有一个与不同计算机上的多个用户共享的R脚本。它的一行包含install.packages("xtable")命令。

问题是,每次有人运行脚本时,R显然会花费大量时间重新安装包(实际上需要花费一些时间,因为实际情况下有几个包的向量)。

如何才能先检查软件包是否已安装,然后只对未安装的软件包运行install.packages()

EN

回答 15

Stack Overflow用户

回答已采纳

发布于 2012-02-18 21:48:06

试试:require("xtable")"xtable" %in% rownames(installed.packages())

票数 166
EN

Stack Overflow用户

发布于 2014-04-25 15:00:56

如果你想尽可能简单地做到这一点:

代码语言:javascript
复制
packages <- c("ggplot2", "dplyr", "Hmisc", "lme4", "arm", "lattice", "lavaan")

install.packages(setdiff(packages, rownames(installed.packages())))  

将第一行中列出的包替换为运行代码所需的包,瞧!

注意:由于Artem下面的评论,编辑后删除了条件包装器。

票数 65
EN

Stack Overflow用户

发布于 2012-02-18 22:01:10

这是我经常使用的一个函数,用于检查包,否则安装它,然后再次加载:

代码语言:javascript
复制
pkgTest <- function(x)
  {
    if (!require(x,character.only = TRUE))
    {
      install.packages(x,dep=TRUE)
        if(!require(x,character.only = TRUE)) stop("Package not found")
    }
  }

其工作方式类似于pkgTest("xtable")。它只有在设置了镜像的情况下才能工作,但您可以在require调用中输入它。

票数 54
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9341635

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档