按下訂閱鈕透過電子郵件收到我的文章🎉
緣起
前幾天接到碁峰出版社編輯的來電,因為要再刷「輕鬆學習 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 程式設計中的重要性。因此在第二版中將 vector
、list
、factor
與 data.frame
列為四個必學的資料結構的理由已不復存在,在第三版中將在資料結構的章節中把 vector
、list
與 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😻、留言🙋♂️或者分享🙌