按需安装包

时间:2013-11-07 14:18:06

标签: r install package

是否有“标准”方式加载软件包,如果尚未安装,请安装它?像

这样的东西
if (!is.installed(package))
    install(package)
library(package)

(伪代码!),封装在一个整洁的函数中?

我擦拭我的私人网站库后经常很难,我不时会这样做。如果我的脚本都使用了这种“按需安装”功能,那么这将自动发生。

2 个答案:

答案 0 :(得分:2)

Dason K.我有a package in the works on GitHub,需要进行一些测试和一些清洁工作,最终会被推送到CRAN。包中的函数p_load执行此操作。

library(devtools)
install_github("trinker/pacman")

答案 1 :(得分:0)

我看到已经给出了其他答案,但我的偏好是:

 if ( !require('pkg') ) { install.packages('pkg', dependencies=TRUE);
                        require('pkg') }

如果您要取消警告,请将quietly=TRUE添加到第一个require来电。我想你可以将它捆绑成一个函数,叫做什么? insist

 insist <- function(pkg){
          if ( !require(pkg, character.only=TRUE) ) { 
                    install.packages(as.character(pkg), dependencies=TRUE)
          require(pkg, character.only=TRUE) }
                         }

(我的主要绊脚石:要求的第一个参数似乎没有得到评估,除非character.only=TRUE。给我几个读取?require页面以获得这个想法。我想。)