本篇介紹如何在安裝新版本的 R 之後,自動在新版 R 中把舊版 R 中有安裝的套件一起裝起來。
R 的版本更新非常快,而在安裝新版本的 R 之後,許多套件都要重新安裝,如果少裝了某些套件,舊的程式就會無法執行,但是套件數量很多的時候,手動安裝會很麻煩,這時候只要利用簡單的 R 指令稿,即可自動處理所有套件安裝的問題。
大部分的 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)
許多 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)