3 回答

TA貢獻(xiàn)1784條經(jīng)驗 獲得超9個贊
是。如果您有包列表,請將其與輸出進(jìn)行比較installed.packages()[,"Package"]并安裝缺少的包。像這樣的東西:
list.of.packages <- c("ggplot2", "Rcpp")
new.packages <- list.of.packages[!(list.of.packages %in% installed.packages()[,"Package"])]
if(length(new.packages)) install.packages(new.packages)
除此以外:
如果您將代碼放在一個包中并使它們成為依賴項,那么在安裝包時它們將自動安裝。

TA貢獻(xiàn)1872條經(jīng)驗 獲得超4個贊
Dason K.和我有pacman包可以做得很好。p_load
包中的功能就是這樣做的。第一行是為了確保安裝pacman。
if (!require("pacman")) install.packages("pacman")pacman::p_load(package1, package2, package_n)

TA貢獻(xiàn)1906條經(jīng)驗 獲得超3個贊
你可以使用以下的返回值require
:
if(!require(somepackage)){ install.packages("somepackage") library(somepackage)}
我library
在安裝后使用,因為如果安裝不成功或由于某些其他原因無法加載包,它將拋出異常。您可以使其更加強(qiáng)大和可重用:
dynamic_require <- function(package){ if(eval(parse(text=paste("require(",package,")")))) return True install.packages(package) return eval(parse(text=paste("require(",package,")")))}
這種方法的缺點是你必須在引號中傳遞包名,而不是真實的require
。
- 3 回答
- 0 關(guān)注
- 634 瀏覽
添加回答
舉報