建立 R 開發環境:起手式 | The Will Will Web

The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

建立 R 開發環境:起手式

要開始建立 R 的互動執行環境,有些安裝與設定的步驟,對於完全沒用過 R 的人來說,可能會卡關一下。我特別寫了這篇文章,紀錄建立 R 開發環境的起手式,以及執行在 Docker 的一些注意事項。

安裝開發環境 (本機)

  1. 安裝 R 執行環境

    安裝最新版

    查詢舊版本: https://cran.r-project.org/bin/windows/base/old/

  2. 安裝 Rtools 工具

    從 R 4.0.0 開始(April 2020),R for Windows 使用全新的工具組名稱,叫做 rtools40

安裝開發環境 (Docker)

透過 Docker 應該是設定 R 執行環境最簡單的方式,只要到 Docker Hub 找到 r-base 容器映象,直接下載執行即可,這個 Docker Images 。

  • Interactive R

    最新版(4.0.2)

    docker run -ti --rm r-base
    

    舊版

    docker run -ti --rm r-base:3.6.3
    

    使用 non-root 身份執行 R 腳本

    docker run -ti --rm -v ${PWD}:/home/docker -w /home/docker -u docker r-base:4.0.2 bash
    
  • Batch mode

    使用 non-root 身份執行 R 腳本 (過程會去找 DESCRIPTION 檔案)

    docker run -ti --rm -v ${PWD}:/home/docker -w /home/docker -u docker r-base:4.0.2 R CMD check .
    

    在容器中批次執行 R 腳本的方法

    Rscript myscript.R
    

啟動 R 互動環境

  • 預設啟動只要輸入「大寫」的 R 即可啟動

    R
    
  • 退出互動環境只要按下 Ctrl-D 就可以退出,或執行 q() 函式

    q()
    

    第一次退出會出現 Save workspace image? [y/n/c]: 提示,按下 y 可儲存當前環境! 可能會出現 .Rhistory.RData 檔案。

  • 啟動原始 R 互動環境

    有時候因為啟動目錄有大量暫存資料,這會導致 R 啟動時間超久,這時可以加上 --vanilla 大幅提高啟動速度。

    R --vanilla
    

    除此之外,有時 .RData 檔案會毀損,此時也可以透過這個參數跳過載入過程。

安裝套件

  • 從 GitHub 安裝 (透過 remotes 套件)

    > install.packages("remotes")
    > remotes::install_github("privefl/bigsnpr")
    
  • 從 CRAN 安裝

    > install.packages("xgboost")
    

    查詢安裝版本

    packageVersion("xgboost")
    

    安裝特定版本 (先到 CRAN 網站找到套件,再找到 Old sources 連結,再複製套件網址)

    install.packages('https://cran.r-project.org/src/contrib/Archive/xgboost/xgboost_0.71.2.tar.gz')
    
  • 從 Terminal 安裝

    $ R -e "install.packages('jsonlite',dependencies=TRUE, repos='http://cran.rstudio.com/')"
    
  • 從 Dockerfile 安裝

    RUN R -e "install.packages('remotes',dependencies=TRUE, repos='http://cran.rstudio.com/')"
    RUN R -e "remotes::install_github('privefl/bigsnpr')"
    
    RUN R -e "install.packages('xgboost',dependencies=TRUE, repos='http://cran.rstudio.com/')"
    

    r-base 容器中設定的 library 預設路徑為 /usr/local/lib/R/site-library

載入 R 套件

  • 安靜的載入套件 (載入失敗會回傳 FALSE 狀態)

    library(jsonlite)
    
  • 載入成功會回傳 TRUE 狀態,載入失敗會回傳 FALSE 狀態

    require(jsonlite)
    

基本 R 語法

  • 建立變數 a 並指派值為 1

    a <- 1
    
  • 印出 a 變數的內容

    a
    
  • 執行內建函式

    Sys.time()
    
  • 一次執行多個陳述式 (Statements)

    Sys.time(); a <- "OK"; a; Sys.time();
    

相關連結