HOWTO · R
如何檢查 R 的版本
了解如何在 R 主控台、從終端機以及在 R 指令碼內檢查 R 版本,並理解每種方法報告的是哪個工作階段或可執行檔。
本頁內容
在 R 內部使用 R.version.string 可獲得簡潔的版本標籤,或在終端機中執行 R --version 來檢查該終端機的 PATH 中找到的可執行檔。主控台運算式描述的是你開啟的 R 工作階段;終端機命令可能指向與 IDE 所選安裝不同的另一安裝。
在 R 主控台中檢查 R 版本
在 R 提示符下,對 R.version.string 求值可列印一個包含發行號和任何建置細節的簡短標籤。這通常是識別目前主控台或 RStudio 工作階段所用版本的最快方法。該運算式讀取一個值;它不呼叫函式。
cat(R.version.string, "\n")
輸出:
R version 4.2.2 Patched (2022-11-10 r83330)
如需結構化細節,請檢查 R.version。它是一個內建物件,而不是函式,其欄位描述 R 建置,包括主、次版本號元件、平台和版本字串。使用 $ 讀取特定欄位,例如 R.version$major,或在診斷不同建置之間的差異時顯示整個物件。確切的欄位和值取決於 R 的安裝,因此請比較版本字串和相關元件,而不是依賴與另一台機器綁定的範例。
sessionInfo() 回答的是更廣泛的疑難排解問題。它報告 R 版本以及作業系統、地區設定和已附加或已載入的套件資訊。當問題可能取決於套件或工作階段設定時使用它;當你只需要版本標籤時使用 R.version.string。
從命令列檢查 R 版本
在終端機中,執行 R --version。這會要求從目前 PATH 解析出的 R 可執行檔列印其版本資訊。該命令在伺服器上或在不開啟圖形主控台的 shell 中很有用。其結果識別的是該可執行檔,而不一定是電腦上的每個 R 安裝。
如果終端機中列印的版本與 RStudio 或其他 IDE 中的 R.version.string 不同,則這兩個環境使用的是不同的 R 可執行檔。請檢查終端機解析的是哪個可執行檔,以及 IDE 設定為使用哪個安裝。版本檢查可以協助診斷套件的相容性,但它本身並不能確定專案需要哪個 R 發行版;在變更安裝之前,請查閱專案的設定說明和套件要求。
在 R 指令碼中檢查 R 版本
R 指令碼可以列印執行它的版本,並將發行版元件與最低要求進行比較。getRversion() 傳回一個專為比較設計的版本值,因此避免將版本標籤當作普通文字處理。例如,文字排序可能會將 4.10 和 4.9 等發行版排錯順序;請改用版本感知比較。
cat(R.version.string, "\n")
required_version <- "4.0.0"
current_version <- getRversion()
if (current_version >= required_version) {
cat("The required R version is available.\n")
} else {
cat("This script expects R ", required_version, " or later.\n", sep = "")
}
輸出:
R version 4.2.2 Patched (2022-11-10 r83330)
The required R version is available.
所需的發行版是一個範例值;請將其替換為你的程式碼或專案支援的最低版本。該指令碼列印使用中的 R 版本,並報告該 R 是否符合要求,而將如何安裝或選擇 R 的決定留給專案的環境設定。為了可重現的錯誤報告,除了版本標籤外,還請附上 sessionInfo(),因為套件版本和平台細節可能會影響行為。