本篇介紹如何在安裝新版本的 R 之後,自動在新版 R 中把舊版 R 中有安裝的套件一起裝起來。

R 的版本更新非常快,而在安裝新版本的 R 之後,許多套件都要重新安裝,如果少裝了某些套件,舊的程式就會無法執行,但是套件數量很多的時候,手動安裝會很麻煩,這時候只要利用簡單的 R 指令稿,即可自動處理所有套件安裝的問題。

CRAN 套件

大部分的 R 套件都是透過官方 CRAN 套件庫安裝的,只要用簡單的內建指令即可處理。

匯出舊套件名稱

首先在舊版的 R 環境中,匯出所有套件名稱,將其儲存在一個暫存檔案中:

# 設定 R 套件名稱列表暫存檔案
pkgs.file = "~/installed_packages.RData"

# 列出所有舊套件(排除內建套件)
pkgs.df <- installed.packages(priority = "NA")
pkgs.vec <- as.vector(pkgs.df[,1])

# 將套件名稱儲存在暫存檔案中
save(pkgs.vec, file = pkgs.file)

自動安裝套件

接著在新版的 R 環境中,載入這些套件名稱,自動安裝所有套件:

# 設定 R 套件名稱列表暫存檔案
pkgs.file = "~/installed_packages.RData"

# 載入套件名稱列表
load(pkgs.file)

# 安裝所有套件
install.packages(pkgs.vec)

這樣就完成套件的自動安裝了。

如果在安裝完成時,出現類似這種找不到套件的警告訊息,就表示這些套件不在 CRAN 之內,這時候就要另外查詢這些套件是從哪裡來的,另外以手動處理。

Warning message:
packages ‘AnnotationDbi’, ‘Biobase’, ‘BiocGenerics’, ‘BiocInstaller’, ‘IRanges’, ‘S4Vectors’ are not available (for R version 3.6.1)

Bioconductor 套件

許多 CRAN 中沒有收錄的 R 套件都是從 Bioconductor 來的(尤其是生物相關的),對於 Bioconductor 的套件來說,安裝方式就會跟 CRAN 的套件不同。

若要安裝 Bioconductor 的套件,就要手動將套件的名稱整理好,再按照以下的指令安裝。

# Bioconductor 套件列表
bio.pkg <- c("AnnotationDbi", "Biobase", "BiocGenerics", "BiocInstaller", "IRanges", "S4Vectors")

# 安裝與載入 BiocManager 套件
if (!requireNamespace("BiocManager", quietly = TRUE))
    install.packages("BiocManager")

# 安裝 Bioconductor 套件
BiocManager::install(bio.pkg)