零基礎學習R語言數據分析

其實相對於常見的編程語言,R語言還是非常容易上手。學習1年多時間,就可以找一份不錯的工作了。

前言

我當初學習R的時候在網上搜到一則流傳很廣的R語言學習路線圖(R語言學習由淺入深路線圖),我在微信圈,微信公眾平台上也見多次,寫的確實很詳細。但是對一些沒有編程經驗的童鞋來說,學習的難度還是太大了。後來自己瀏覽了很多R語言書籍,嘗試了一些門檻比較低的書籍。自此,R語言學習才走上正軌。以下涉及內容包括R語言書籍的推薦,以及R語言相關課程的推薦,學完這個教程的內容之後足以應付工作學習中遇到的統計分析的問題了。

經典書籍推薦

R語言有兩類書籍比較「坑」,一類是Programming類,一般都帶programing字眼,但不絕對。這類書籍一般是計算機背景的人寫的,關注的重點是編程(寫代碼和編程不是一碼事),底層的運行機制之類的,比較難以捉摸,典型的例子是《The art of R programming》。還有一類是講統計知識比較多,而且喜歡推公式。雖然有所裨益,但是會分散很多學習R的精力,可以作為後期提高的書籍,但是作為入門不太合適,像《The R book》。

講完了「不好的」R的學習資料,可以規避一些「誤入歧途」的風險。下面介紹一下我覺得比價有用的學習資料。學習任何語言的捷徑就是Learn by dirty。這裡推薦一個網站,code school的Try R 課程,非常基礎,從最基本的語句的賦值到最後的數據框的基本操作,手把手一步一步的教你,然後對你輸入的語句,網頁會給出判斷,如果寫錯了,還有很詳細的解釋。網頁全部是英文的,英語過了四級的童鞋應該可以應付了。

R的入門書籍,比較好的是Learning R , 中文名是《學習 R》。第一章到第五章的數據的基本入門,必須要細看的,而且要讀好幾遍的,這是R的最基本的東西,需熟練掌握,多家練習。別覺得看懂就行了,只有自己敲出來運行正確才行。第六章環境和函數這一章建議直接跳過,比較抽象,等回頭R學的差不多了,再回頭看比較好。大多數人,平時基本不涉及到這一樣的內容。第七章 字元串和因子也是很重要的一章,特別是醫學領域。第八、九章的循環,量力而行。第八章的內容其實大多數其他編程語言都會涉及。但是在R裡面,這些顯循環,用的較少。其實主要還是向量化的操作為主,也稱隱循環。第九章的隱循環非常有用,是R最精華的東西,就是學習起來有點困難。其主要內容是 apply族函數,包括lapply, sapply, tapply, apply, mapply等。這本書最優秀的地方在於數據的subset部分,各種方法講的非常詳細,也有很多的例子。這也是R語言比較難入門的地方。

《R in Action》 確實一本非常優秀的書籍,我看喝多大神都推薦這麼書,我大概學了一遍,確實非常不錯。這本書非常好的地方在於圍繞具體的問題展開,教你如何利用R進行操作,而且選取的例子也非常具有代表性,所以建議每個例子都要詳細研究。但是這本書學習曲線比較陡峭,可能上一章的內容還沒有消化,又要開始新的內容了。遇到問題時建議多點耐心,谷歌或者請教別人,把這些知識點掌握了,這是R的基礎。

還有一本書,《R cookbook》,這本書是圍繞具體的問題進行設置的。所以可以作為一個遇到困難時候的快速翻閱手冊,裡面特別有用的章節是如何運用apply組函數,上面兩本書都講得不是很詳細。

R繪製統計圖的功能非常強悍

(你見過這麼令人心神蕩漾的圖嘛!)

你見過的沒見過,想到的,沒想到的,都可以繪製出來哦。哈哈,心動不如行動,幾行代碼一敲,令人心神蕩漾的圖片就出來啦。R繪圖非常簡單的,就是一個簡單的學習記憶的過程。R語言繪圖發展的非常快現在有三大繪圖系統,基礎繪圖系統,Lattice繪圖系統,ggplot2繪圖系統。雖然各有其使用價值,但個人推薦ggplot2繪圖系統以及基礎繪圖系統。 Lattice對於多分組的數據的展現比較好,但是ggplot2是可以很大程度上替代其功能,不學習也可以,非要用的時候依葫蘆畫瓢就可以了。

下面主要介紹R的基礎繪圖系統和ggplot2繪圖系統的學習路線。R基礎繪圖系統《R in Action》中,花了很大的篇幅介紹了基礎繪圖系統,如果學習完了,工作中碰到的很多統計圖就可以勝任了。如果你喜歡鑽研,可以看看謝益輝(Knitr包的作者)的《現代統計圖形》,講的非常詳細和透徹。不僅如此,更是講解了圖形的選擇,圖形的設計方面的知識。學有餘力,不妨學習一下ggplot2繪圖系統, 推薦《R graphics cookbook》一書。書中不僅有ggplot2的繪圖代碼而且還將其與基礎繪圖系統進行了比較。介紹的圖形非常實用,而且ggplot2的擴展性非常強,可以發揮你的想像力,創造一些新奇的圖形。

(R語言書籍全家福)

R語言學習網路課程推薦:

1. Datacamp,learn by coding類型的網站,課程設置非常用心,難度合適,內容豐富,最好的R語言學習網站之一。

2. 國內的視頻課程

國內的R語言網路課程最豐富的應該是煉數成金(dataguru)平台,課程包括《R語言數據分析、展現與實例》,《R七種武器之交互化展示包shiny》,《R七種武器之文本挖掘包tm》,《R七種武器之數據可視化包ggplot2》、《R七種武器之數據加工廠plyr》、《R七種武器之金融數據分析quantmod》、《R七種武器之網路爬蟲RCurl(第四期)》等。其中比較適合入門的課程是

《R語言數據分析、展現與實例》

3. MOOC課程

Coursera John Hopkins 專題課程不錯 (已經上完6門課,2門課正在學習中);還有edX上MIT的The Analytic Edge課程也不錯。其他答案有詳細介紹不贅述了。

4. 強烈推薦Swirl包,你值得擁有。

簡單易懂,容易上手。分初、中、高級。

(Swirl包開發者畢業後就去了麥肯錫諮詢公司了。)

P.S.: 衷心感謝大家的讚賞,這是對我最大的肯定(網費有著落了)。


推薦閱讀:

R語言可視化——REmapH(中心熱度圖)
RCurl中這麼多get函數,是不是一直傻傻分不清!!!
R語言抓取《歡樂頌2》熱聞
Learn R | Association Rules of Data Mining(二)
如何用R語言計算形態坐標矩陣的質心距離?

TAG:数据分析 | R编程语言 | 机器学习 |