是否有“标准”方式加载软件包,如果尚未安装,请安装它?像
这样的东西if (!is.installed(package))
install(package)
library(package)
(伪代码!),封装在一个整洁的函数中?
我擦拭我的私人网站库后经常很难,我不时会这样做。如果我的脚本都使用了这种“按需安装”功能,那么这将自动发生。
答案 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
页面以获得这个想法。我想。)