[R語言資源]如何自學R語言?兩條路徑、三個階段,幫你整理學習R語言的地圖

6

Last Updated on 2023-10-05

Home » R語言資源 » R語言地圖 » [R語言資源]如何自學R語言?兩條路徑、三個階段,幫你整理學習R語言的地圖

無論是看線上課程影片,或是電子書,本文都幫你整理好自學R語言的路徑。


你曾經想學過自學R語言,卻不知道該從哪裡開始嗎?你上過R程式的初階課,想要精進但不確定該往什麼方向嗎?又或者你跟曾經的我一樣,學過好幾次R語言,但一直沒有辦法有脈絡的學習,只好不斷打掉重練嗎?

若有上述的問題,那你來對地方了。這篇文章整理出了自學R語言的兩條路徑,分別是透過線上課程學習R語言,還有看電子書學習R語言,並按照不同程度,將學習分為三個階段,讓你可以從零開始掌握R語言。

前言:R語言學習資源太多,不知道從哪開始

在學習資源琳瑯滿目的現在,即使不到學校上課,也不用報名補習班,在家也能學好程式,R語言就是其中一個例子。不過,每個人的財力和學習習慣不同,有些人可以負擔有助教回答問題,並協助批改作業的收費線上課程,但其他人只能仰賴免費的電子書;即使是影片類課程,有些人喜歡長時間講課類的內容,有些人則喜歡時長較短、中間有大量練習回饋的教學方式,還有些人不喜歡如此有動感的學習,習慣和文字對話,想自己看R語言的書。

因此,底下我將列出兩種學習路徑,讓你選擇適合自己學習R語言的道路。每一條道路都會再進一步分成初學、入門、進階三個階段,你可以依據自己的進度,從中擇一開始自學R語言。

沒有最好的選擇,只有最適合自己的選擇。如果你心動了,不要猶豫,開始學習R語言吧!

第一條路:從線上課程學習R語言

如果你習慣和學校上課一樣,有老師講課、出作業,喜歡看影片多過於看書,那這會是你的好選擇。我推薦兩個平台讓你自學R語言,一個是領域多元的大型線上學習平台 Coursera,一個是 Datacamp。其實,市面上不只有這些平台,還有中文的 Hahow、以英文內容為主的 Udemy、Udacity,就連 YouTube 上其實也有很多R語言教學的影片。

之所以挑選這兩個平台,是因為我實際上過不同平台上R語言的相關課程,也詳細比較大量課程的課綱。我認為這兩者的課程較為結構化,適合身邊沒有熟人朋友可以諮詢的同學。

在 Coursera 上學習R語言

Coursera 是一個大型的課程平台,有許多全球知名的學校在上面開課,學生可以免費聽課,或者在上完課後花錢購買證書,後者也是這間公司主要的獲利來源。另外補充我跟該平台沒有關係,你點連結過去我也無法賺錢,希望未來有機會。

Coursera 上面也有不少R語言的課程,包含杜克大學、IBM、Google等都有開課,不過我最推薦約翰霍普金斯大學(John Hopkins)大學開設的資料科學系列課程,理由是它的課程從零開始,且課程架構完整,沒有闕漏之處,也非常專注於R語言。我自己實際上過課之後覺得體驗很好,想推薦給大家。

Coursera 上有大量關於 R 的課程,但就屬約翰霍普金斯大學的這系列課程有最多人上課。

Coursera 的課程以影片為主,每段影片的時間都不長,而且底下也附上老師講課的逐字稿(Transcript),你可以自己考慮學習R語言的結構。除了講課之外,也有固定的練習與作業,如果你有付費,助教會幫忙批改作業。但就算沒有付費,也可以自己找答案,如果不需要這張證書,那還是不要花這筆錢。

回到課程本身,「資料科學系列課程」顧名思義,課程設計就是利用R語言學習資料科學,一共有十堂課。

它的第一堂課叫做「資料科學家的工具箱」(The Data Scientist’s Toolbox),其實就是在介紹什麼是資料科學,接著以R語言為基底,告訴學生怎麼安裝R、版本控制與Github是什麼、如何用R Markdown與人溝通等等。

接下來第二到五堂分別為「R語言程式設計(R Programming)、「獲取和整理資料(Getting and Cleansing Data)、「探索性資料分析」(Exploratory Data Analysis)、「可重複性研究」(Reproducible Research)等。從課名就可以知道,這些課程的內容和廣義的資料處理有關,你可以在這些課程中對R語言有足夠認識,也能利用R語言整理資料、進行簡單的探索。

部分課程包含中文版本,英文不好也可以自學R語言。

事實上,只要修完這五堂課,你其實就完成了「資料科學:使用R語言學習基礎」(Data Science: Foundations using R)的模組。後面第六到第十堂課,屬於另一個模組「資料科學:統計與機器學習」(Data Science: Statistics and Machine Learning),這部分是跟資料科學本身更直接相關的內容。這兩個模組構成了上述的資料科學系列課程。

無論你是否想要專攻資料科學,你都可以上這一堂課。你可能是學界的研究者,不想繼續用SPSS處理資料;你也可能是剛進入行銷領域的新鮮人,每天要面對Google Sheet,想要找尋更好更快的分析方式;又或者你是投資人,除了價值投資以外,也想接觸量化交易的領域。

若是修完這五堂課,你已經完成自學R語言路徑中初學和入門的階段,大概就可以處理平常工作上會用得到的資料,接下來可以深耕你想精進的領域;若你覺得還沒有心滿意足,又不排斥繼續上課,則可以跟著課程設計,完成後面一個模組。

利用 DataCamp 學習R語言

DataCamp 專攻資料科學領域,內容以R語言和Python為主,最早就是以R語言起家,而後擴大課程規模,加入Python,近年更陸續補上SQL、Tableau、CMD語法等,也有加入商業思維的相關課程。我個人在平台發展初期就開始使用DataCamp,陸續用了好幾年,雖然後面熟悉R語言後就比較少花時間在上面,但對初學者來說還是值得推薦。

DataCamp 的好處在於,它有整理出不同的路徑,包含技能路徑(Skill Track)與職涯路徑(Career Track)兩種,所以使用者不用煩惱該從哪裡開始,只要按圖索驥就行。

以 R 語言為例,上面就有 6 種職涯路徑可供挑選。若是技能路徑,還會更多。

它的授課方式雖然也是影片,但時間長度更短,而且上課提供簡報的PDF檔案供下載,同時簡報內容高度圖像化,很適合對程式陌生的學生。更重要的一點是,影片與影片之間有提供即時運作的程式碼運作區域,你可以直接在旁邊練習,對照螢幕左側的提示,並立刻檢查答案有無錯誤,這樣很能夠檢查究竟是否吸收講課內容,也是之前讀大學時學校老師採用這個平台的原因。不過,它的收費也不便宜,如果沒錢的話,可以看有沒有哪些授課老師有在用這個平台,加進課堂的教育版本就不用花錢了。

我推薦的自學路徑如下:

第一個模組,先從「R 語言程式設計」(R Programming)開始,這個模組包含最基礎的R語言介紹,例如賦值是什麼、在R語言中如何四則運算、語言有什麼儲存資料的結構等等。接著會進入到稍微進階的內容(但仍是基礎),討論諸如迴圈、條件判斷等,然後是函數相關的課程。

第二個模組,我推薦接著學「利用R匯入和清理資料」(Importing & Cleaning Data with R),它主要教授學生如何先從本地匯入資料,例如CSV、EXCEL這類常見的格式,接著進到從資料庫匯入資料與簡短版爬蟲,然後是清理資料,以及利用 tidyr 套件整理資料。

第三個模組,我推薦接著學「利用R操作資料」(Data Manipulation with R),它其實就是在教導學生如何揮舞 dplyr 以及 data.table 這兩個神兵天器。在這個模組中,你會認識dplyr當中幾個重要動詞,例如 select(), arrange(), filter() 等,並知道該怎麼用它們改動你的資料。另外,這個模組也會提到資料串接(join)的概念,你可以藉此連接起不同張資料表。最後,它談到了效能強大的 data.table,它同樣是操作資料的重要套件,威力甚至勝過 dplyr,只是學習上稍微難上一些。

第四個模組,我推薦接著學「利用R視覺化資料」(Data Visualization with R),它以 ggplot2 這個威震R宇宙的套件為基礎,教授學生如何視覺化資料。這堂課會從繪圖的文法(grammar of graphics)開始,討論視覺化資料的底層邏輯,而後才會真的畫圖。但因為視覺化資料的領域博大精深,上完這個模組後還是會覺得很不足啊!若你看感到好奇,不妨先參考 Lee Meng 的這篇文章,便能認識何謂繪圖的文法。

第五個模組,比較像是自我精進,若你只是想會處理資料,可以跳過這個部分,它的名字叫做「Tidyverse 的進階工具箱」(Intermediate Tidyverse Toolbox),我認為內容屬於加值練功的類型。它先從處理缺失值這個實務上常見的情境開始,接著介紹以 functional programming 概念開發的 purrr 套件,搭配 %>% 使用起來實在法力無邊,這不是開玩笑的。模組最後會介紹在 Tidyverse 的框架下做機器學習,之後我會再寫文章介紹什麼是 Tidyverse,一言以蔽之,它就是一個R語言發展下來的獨特宇宙。

學完這五個模組,或是前四個模組,就跟前面 Coursera 的課程一樣,你在自學R語言的這條路上,也算小有所成了。接下來你同樣可以在R語言的世界中探索其他領域,就 DataCamp 來說,至少有統計、行銷分析、財金、空間分析、機器學習、互動版本的視覺化等等,可說是非常豐富。

DataCamp 的影片之間,穿插大量互動式練習,對初學者來說有很正面的回饋感。

第二條路:看電子書學習R語言

如果你不想花錢,或者不喜歡看影片,更習慣一個人耐心等候,讀著文字,那麼我想推薦你第二條自學R程式語言的路徑,也就是讀電子書。

初學R語言階段

在剛開始學習R語言的階段,你應該掌握對R語言的基本認識。我想先推薦 Hands-On Programming with R 這本書,它是以具體的案例實作貫串整本書。常見的程式語言書籍,大概都是一個知識點接著一個知識點進行,例如學完資料結構後進入基本程式運作,然後再看一下函數怎麼寫。

但這本書不一樣,它分為三大部分:骰骰子、玩撲克牌、吃角子老虎機,每個部份就是要請讀者利用R語言實作出這三個專案,你要真的用每個章節的內容,寫出怎麼丟骰子、怎麼規劃出機率不等的吃角子老虎,學習體驗非常有趣,而且也是面向初學者。

Hands-On Programming with R 書中,有很多清楚易懂的插圖幫助你學習R語言。

如果你不喜歡上面的這種教學方法,而更偏好傳統上課方式,則我想推薦已經出到第二版的 R Cookbook,這個階段你只需要讀前五章就好。它非常按部就班地從安裝R程式和RStudio開始,一路帶到R的資料結構。

若你的程式底子相對深厚,那我想推薦 The Art of R Programming 這本書,它的內容比較紮實,不會只講函數要怎麼用,還會講背後的一些原理,可以更深刻的認識到R語言底層運作的美麗。

入門R語言階段

對R有一定認識之後,你可以開始看這本傳奇之書:R for Data Science,它由 Tidyverse、R語言界的天王巨星 Hadley Wickham 所著,Hadley Wickham 除了是 RStudio 的首席科學家以外,同時也是幾間大學統計系的兼任教授,更寫了 ggplot2, advanced R, R packages 等書籍,同時也是 ggplot2, dplyr 等套件的推手。

Hadley Wickham 的個人頁面,他的著作多、程式寫得更多。

這本書同樣不走傳統路數。從介紹本書的章節以後,馬上就開始資料視覺化,然後跳回去R語言基礎,接著又跑去資料轉換,然後再度跳回去介紹何謂Scripts,簡單來說就是一下是資料處理的應用,一下是補足R語言的基礎。正因為如此,雖然它標榜面向所有讀者,我還是把它放在入門階段。此外,整本書都在 Tidyverse 的框架下進行,也是現在最流行的框架,學這本基本上不會有應用或對接的問題。

若你對R4DS的編排感到不適,相信我那不是特例,因為先前就曾經碰過自學R語言的人不習慣這種跳來跳去的章節,一下就開始畫圖,連資料型態都還沒掌握,會嚇壞不少人。如果你就是這樣的話,那我推薦你可以重拾 R Cookbook,從第六章開始看。不過想提醒一下,它後面的內容就有帶到機率與統計,這未必符合你的需求,可以斟酌一下。


若你對統計有興趣,也可以讀這本 Statistical Inference via Data Science 的前四個章節,它的副標題是 A ModernDive into R and the Tidyverse,不難看出,這本書也是在所謂 Tidyverse 的框架底下,就和 R4DS 一樣。你可以從前面四個章節入門R語言。

進階R語言階段

進階階段,其實就要看你對什麼有興趣。

若你想學好畫圖,那我推薦這本 Data Visualization: A practical introduction,全書都是用 ggplot2 繪製而成,而且有用程式碼教學,不會有其他書籍見林不見樹,只知道觀念但不知道如何實作的問題。而且教授很有人社素養,寫起書來除了重視細節以外,能夠感受到教授的關懷與敏銳。

這本視覺化的書籍精而不細,也不會掛萬而漏一,非常推薦。

若你對文字探勘有興趣,我想推薦 Text Mining with R,它同樣參考了 Tidyverse 的設計理念,使用了 tidytext 這個套件,而且內容非常具有實務性,我認識不少社科領域的碩班學生會參考這本書。

若你想繼續深入了解何謂資料科學,那上面的 Statistical Inference via Data Science 就會是你的好朋友!它在後面的章節會談到回歸、假設檢定、統計推論等等,雖然還不沒有介紹到機器學習,但也是很有幫助。

小結:自學R語言不難,開始就好

這篇文章整理了利用線上課程與讀電子書兩個學習R程式語言的路徑。這兩條路,其實都分成初學、入門、進階三個階段,你可以根據自己R語言的程度,評估從哪裡開始。線上課程部分,因為平台有完整規劃,所以按照順序就好,電子書切得比較細,可以多留意。

你也可以參考後來我跟ChatGPT對話,它所建議的學習R語言路徑

無論你走哪一條路,自學R語言,或者自學任何事情的重點還是要開始,不要一天給自己太多進度,才能持之以恆,但累了也要多休息!

以後我會寫更多關於R語言的文章,包含R語言的教學、R語言自學資源、R語言的實務案例等等,希望你會喜歡我的文章,同時也愛上R語言。

本文由「愛上R語言」發布,非經允許請勿轉貼。

延伸閱讀:學寫程式要如何避免半途而廢?我的程式學習經驗與心得

6 Comments

  1. The point of view of your article has taught me a lot, and I already know how to improve the paper on gate.oi, thank you.

  2. The point of view of your article has taught me a lot, and I already know how to improve the paper on gate.oi, thank you.

  3. I have read your article carefully and I agree with you very much. This has provided a great help for my thesis writing, and I will seriously improve it.

  4. Your point of view caught my eye and was very interesting. Thanks.

  5. Reading your article helped me a lot and I agree with you.

  6. Thank you for your sharing. I am worried that I lack creative ideas. It is your article that makes me full of hope. Thank you.

Leave a Reply