輕鬆學習 R 語言(第三版)

緣起、預計修訂章節與採用 Bookdown。

按下訂閱鈕透過電子郵件收到我的文章🎉


緣起

前幾天接到碁峰出版社編輯的來電,因為要再刷「輕鬆學習 R 語言」了,作者可以趁此機會做些修訂,雖然書中內容是以基礎程式設計為主體,不過確實有幾個章節的內容可以更新,於是便欣然答應了。有哪些章節的內容在微幅調整的清單中呢?「輕鬆學習 R 語言」的第二版採用的是 R3.5.1,我想要在這次調整中更新成為 R4.0.3,目前心中打算修訂的章節集中在:起步走、其他資料結構以及網頁資料擷取;除了修訂章節內容以外,亦有打算更換網頁版本的部署平台,第二版有發佈在 Medium 與基於 Vuepress 所架設的數據交點,這次第三版會採用以 R 語言為核心的 Bookdown 來寫作並且以 GitHub Pages 部署。

預計修訂章節:起步走

在一開始的環境安裝指引中,可以更新版本資訊與截圖為 R4.0.3;再來是 2018 年到 2021 年以資料分析為主體的程式語言在 TIOBE Index 與 IEEE Top Programming Languages 2020 的排名整體都是上升,這點也能夠與 2018 年所寫的第二版做一些比對。

預計修訂章節:資料結構

由於 R4.0.3 將 data.frame 預設文字型態的欄位由 factor 改成了 character,這大幅降低 factor 在泛用 R 程式設計中的重要性。因此在第二版中將 vectorlistfactor 與 data.frame 列為四個必學的資料結構的理由已不復存在,在第三版中將在資料結構的章節中把 vectorlist 與 data.frame 的部分優先,讓 factor 、array 與 matrix 的順位後置。

預計修訂章節:網頁資料擷取

在第二版中網頁資料擷取 JSON 與 XML 格式資料使用的範例是:政府資料開放平台:空氣品質指標(AQI);而 HTML 格式資料使用的範例是:IMDb.com。網頁資料的變動性大,再加上擷取時需要用到的第三方套件也有維護更新,也要測試 2018 的程式碼是否在 2021 仍然運作良好。

更換網頁版平台:Bookdown 與 GitHub Pages

除了內容章節的修訂以外,這次的網頁版希望改以 R 語言為核心的 Bookdown 套件來寫作,並且部署在一個單獨的 GitHub Pages 專案。上一次採取 Vuepress 這種泛用的文件框架,是因為除了「輕鬆學習 R 語言」以外尚有一本著作「進擊的資料科學」,希望讓兩本書都可以用相同的介面來呈現;但是相對的,在程式碼執行的輸出和繪圖圖形的顯示上都是比較手動作業的,特別是更新內容或者希望加上索引的時候就會顯得步履蹣跚。

Bookdown 是 R 語言使用者實踐 Reproducible data analysis 的套件,所謂「可重現的資料分析」指的是盡可能讓資料分析的過程能更輕易地被文件化(Documentation),讓資料分析邏輯、程式碼、數學公式以及說明文字緊密結合,進而更容易分享強化影響力。

首先在 RStudio 的環境中安裝 Bookdown 套件。

install.packages("bookdown")

接著可以透過 RStudio 的使用者介面開啟新書專案。

新書專案是以 RMarkdown 檔案(.Rmd)與 YAML 檔(.yml)組合而成,不要調動專案生成的檔案架構,在 RMarkdown 檔案中寫作書本的各章節內容,在 YAML 檔設定文件輸出的細節資訊,例如指定輸出成品(HTML 格式、PDF 格式、DOCX 格式或者 EPUB 格式)的資料夾路徑。

output_dir: "docs"

我目前修訂好的章節是起步走,不過因為還沒有試過部署 Bookdown 專案,所以打算先將現有的內容上架走一遍流程試看看。輸出成品(HTML 格式)至 docs 資料夾後,將整個專案推到 GitHub Repository,前往 Repository 調整 GitHub Pages 的設定。

有一點值得注意的是,Bookdown 的教學有提到在部署到 GitHub Pages 時應該在目錄中新增 .nojekyll 檔案(https://bookdown.org/yihui/bookdown/github.html),但是實際部署時卻發現若是在 docs 資料夾中加入 .nojekyll 反而會看不到成品。

點選 Save 之後就部署成功了,目前已經可以在 <user>.github.io/<repository_name> 瀏覽成品。

接下來是設定客製網域,首先前往網域管理員(例如 GoDaddy)新增一筆 CNAME

主機                        指向
<subdomain>.<domain>.com.  <user>.github.io

在 Custom domain 新增 <subdomain>.<domain>.com,點選 Save 完成客製網域的設定。

最後前往客製網域 https://<subdomain>.<domain>.com 瀏覽成品,以我修訂的「輕鬆學習 R 語言」網頁版為例:https://eloquentr.datainpoint.com/

在完成 Bookdown 專案的部署之後,這篇文章來到尾聲,希望您也和我一樣期待下一篇文章!


透過多種方式與我互動,Like😻、留言🙋‍♂️或者分享🙌

Leave a comment

延伸閱讀