R 語言的 50+ 練習

統計分析的前哨站

Yao-Jen Kuo
數聚點文摘
Published in
6 min readSep 19, 2022

--

來源:https://hahow.in/cr/rfiftyplus

資料科學基石的最後一塊拼圖

繼「如何成為資料分析師」、「SQL 的五十道練習」與「Python 的 50+ 練習」之後,今年九月在 Hahow 上架了資料科學基石的最後一堂入門課程:「R 語言的 50+ 練習:統計分析的前哨站」。

Kaggle 從 2017 年開始每一年都會廣發問卷給網站會員,調查現職的資料科學家、資料分析師、資料工程師與機器學習工程師關於技能、工具與職涯等相關問題,其中有兩個是我常常引用來佐證的問題:

(Multiple choice) What programming language would you recommend an aspiring data scientist to learn first?

(Multiple response) What programming languages do you use on a regular basis?

截至今年已經是機器學習資料科學問卷發送的第六年,雖然第六年的資料尚未公開,但我的預期這兩題的結果應該也是與前五年相差無幾,大抵就是

  1. Python
  2. SQL
  3. R 語言

這樣的排序順位。不過無法否認的是,近幾年隨著機器學習、深度學習與人工智慧這三門應用領域的蓬勃發展,確實讓 Python 一支獨秀的態勢愈加明顯,隨著 Python Pandas 模組的日益成熟,在資料清理、轉置、分析的應用場景也漸漸將 R 語言的 Tidyverse 優勢蠶食鯨吞。表面上看似 Python 在科學計算中壓過了 R 語言、Matlab、Julia 等專用語言,本質上其實是機器學習、深度學習與人工智慧取代了統計學習成為建模主流、Pandas 模組對資料框的操作有了青出於藍、更勝於藍的表現(Pandas 最初就是 Wes McKinney 希望在 Python 重現 R 語言資料框所開發的模組。)

Flexible and powerful data analysis / manipulation library for Python, providing labeled data structures similar to R data.frame objects, statistical functions, and much more.
https://github.com/pandas-dev/pandas

然而即便在 2022 年 R 語言的聲勢看似不如五年前能夠與 Python 各尊一方,卻仍在其核心能力上有著難以取代的優勢,例如對於原生向量化運算的基礎資料結構、豐富的統計函數 stats 套件以及搭配函數型程式設計讓人愛不釋手的原生 Pipe 運算符 |>(從 R4.0 起終於有了。)

為什麼學習 R 語言

R 語言雖然在主流的機器學習、深度學習與人工智慧這三門應用領域難以撼動 Python 的霸主地位,但是在資料科學的其他應用場景,仍然有著蓬勃且生意盎然的發展,像是與主流關聯式資料庫管理系統、大數據資料庫完善的介接與套件:

靜態與動態資料視覺化的 ggplot2 與 Shiny 持續在整合精進,短期內很難被各自為政的 seaborn、Plotly Dash 或者 Streamlit 超越,甚至還推出了 Shiny for Python 的 Alpha 版本,吹響了第一波反攻號角(誤):

而統計分析與統計學習的函數,更是 R 語言長久以來的核心優勢,Python 的 Statsmodels 難以望其項背。

回憶起我在 2017 年參加 iT 邦幫忙鐵人賽所撰寫的「R 語言使用者的 Python 學習筆記」最後一篇文章所寫的主觀比較表,即便是在六年後的現在,在應用場景的選擇上依然能夠沿用,完全沒有改變。

https://ithelp.ithome.com.tw/articles/10188044

  • 我喜歡函數型程式設計:R 語言
  • 我喜歡物件導向程式設計:Python
  • 我想要以資料視覺化為主:R 語言
  • 我想要以統計學習模型為主:R 語言
  • 我想要以機器學習模型為主:Python
  • 我想要以深度學習模型為主:Python

而 Google 在 2021 年於 Coursera 推出的「資料分析專業證照」也選擇了 R 作為主要學習的程式語言,搭配試算表、SQL 與 Tableau 作為資料分析師的技能組合,更讓為數不少打算獲取這張證照的學員,加入學習 R 語言的行列。

課程亮點

這次的「R 語言的 50+ 練習」延續著「SQL 的 50 道練習」以及「Python 的 50+ 練習」基於 Exercise Based Learning 以練習作為基底的 LPAA 教學模型,把每個章節都設計成一個 Learn-Practice-Apply-Assess 的循環。除此之外,更納入了新元素「個案研究 Case study」希望讓學生在學習略微枯燥的基本功時,就能預覽其在應用場景的雛型為何,例如學到「矩陣」資料結構時,隨之而來的是矩陣代數的個案研究,學生能體會為何我們會說學會 R 語言對修習線性代數是有幫助的;例如學到「流程控制」時,隨之而來的是搜尋演算法的個案研究,學生能體會為何二分搜尋會比簡易搜尋更有效率。

來源:https://hahow.in/cr/rfiftyplus

課程內容的安排上,汲取了前兩堂課的經驗,這次規劃了兩大部分、十四個章節:

  1. 基礎篇:從第一章到第八章,掌握 R 語言程式設計的基礎觀念,懂得資料結構、流程控制與定義函數。
  2. 應用篇:從第九章到第十四章,以 R 語言的應用場景為主,介紹如何使用熱門的 tidyverse 套件獲得更多功能、資料載入、資料操作與視覺化文法。

行動呼籲

我希望在好學校開設「R 語言的 50+ 練習」,讓學生一步步完成這門課程所有的觀念講解、範例實作、個案研究以及練習之後,扎實地將 R 語言納入自己的技能組,未來不論是獲取 Google 「資料分析專業證照」、在學修習機率與統計、線性代數、計量經濟學、財務分析或者銜接 Hahow 上面其他的商業分析課程都能如虎添翼!

邀請你加入我的 Hahow 好學校課程「R 語言的 50+ 練習:統計分析的前哨站」,預計於 2022–11–30 正式開課!感謝各位對「數聚點 DATAINPOINT」的長期支持,如果你想要加入這堂課,歡迎來信 yaojenkuo@datainpoint.com 簡單打個招呼,我會回寄與 Hahow 舊生相同折數優惠的折扣碼給你 :)

--

--