為什么R語言是學習數據分析的第一選擇
剛開始學習數據科學的人都會面對同一個問題:
不知道該先學習哪種編程語言。
不僅僅是編程語言,像Tableau,SPSS等軟件系統也是同樣的情況。有越來越多的工具和編程語言,很難知道該選擇哪一種。
事實是,你的時間有限。學習一門新的編程語言相當于一項巨大的投資,因此在選擇語言時需要有戰略性。
很明顯,一些語言會給你的投資帶來很高的回報(付出的時間和金錢投資)。然而其他語言可能是你每年只用幾次的純粹輔助工具。
我給你的建議就是:先學習R語言
專注于一種語言
在說明為什么你應該學習R語言之前,我想強調的是,在開始學習數據科學時,你應該學習一種語言。
有些人問我是否應該學習在學R語言的同時學習Python。我的答案基本上是否定的,除非你需要使用一種以上的語言,否則你應該選擇一種語言進行學習。
專注于一種編程語言的原因是,你需要更多地關注過程和技術,而不是語法。你需要掌握如何通過數據科學工具來分析數據,以及如何解決問題。事實證明,R語言是***的選擇。
學習R語言
我建議你將R語言作為你的***個“數據科學編程語言”。雖然也有例外,比如特定的項目需要。
因為R語言正在成為數據科學的“通用語言”
這并不是說R語言是唯一的語言,也不是說它是每個工作的***工具。然而,它是使用最廣泛的,而且越來越受歡迎。
O' reilly media在過去幾年中進行了一系列數據科學調查,分析了數據科學趨勢。在2016年的調查報告中,R語言是最常用的編程語言(如果排除SQL的話,在本文中它不能稱為編程語言)。57%的調查人群使用R語言(使用Python的比例為54%)。
另一個常見的語言排名系統是Redmonk編程語言排名,它由GitHub(代碼行)和Stack Overflow(標簽數)的流行指數派生而來。截至2016年11月,R語言在所有編程語言中排名第13。此外,R語言多年來一直呈持續上升趨勢:
此外還有TIOBE指數(按搜索引擎搜索次數對編程語言進行排名)。在TIOBE指數上,R語言十年來呈現出穩定上升趨勢。
使用R語言的公司
在招聘數據科學家的幾家***公司中,R語言使用程度非常高。在我認為現代經濟中***秀的兩家公司——Google和Facebook 都有使用R語言數據科學家。
除了像Google,Facebook和微軟這樣的科技巨頭,R語言在美國銀行,福特,TechCrunch,Uber和Trulia等眾多公司都有廣泛的應用。
R語言在學術界很受歡迎
R語言不僅僅是一個行業工具。它在學術科學家和研究人員中也非常受歡迎,最近著名《自然》雜志上發表的R語言概況也證實了這一點。
R語言在學術界的備受歡迎,因為它創造了供應行業的人才庫。
換句話說,如果***秀、最聰明的人群在大學學習了R語言,這將加大R語言在行業中的重要性。當學者、博士和研究人員離開學術界從事商業活動時,他們又將產生對R語言人才的需求。
此外,隨著數據科學的成熟,商業屆的數據科學家將需要與學術屆的科學家進行更多的溝通。我們需要借鑒技術和交流觀點。隨著世界轉變為數據流時,學術科學與面向商業的數據科學之間的界線會變得模糊。
通過R語言學習“數據科學的技能”是最簡單的
然而,R語言的普及性并不是學習R語言的唯一原因。
在選擇語言時,你需要一種在這些領域都具有重要功能的語言。同時你需要執行這些任務的工具,以及在你所選語言中來學習這些技能的資源。
如上所述,你更多地需要關注流程和技術,而不是語法。
你需要學習如何解決問題。
你需要學習如何在數據中找到真知灼見。
為此,你需要掌握數據科學的3個核心技能領域:數據處理,數據可視化和機器學習。在R語言中掌握這些技能將比任何其他語言都容易。
數據處理
一般來說,數據科學中80%的工作都是數據處理。通常情況下,你需要花費大量時間來整理你的數據。R語言中有一些很棒的數據管理工具。
R語言中的dplyr包使數據處理變得容易,這可以大大簡化數據處理的工作流程。
數據可視化
ggplot2是***的數據可視化工具之一。ggplot2的好處是,在學習語法的同時,還學習如何思考數據可視化。
所有的統計可視化都有很深層的結構。存在構建數據可視化的高度結構化框架,ggplot2基于該框架。
此外,當將ggplot2和dplyr組合在一起時,從數據中得出相關見解幾乎毫不費力。
機器學習
***,還有機器學習。雖然我認為大多數數據科學初學者不應該急于學習機器學習(首先掌握數據探索更為重要),機器學習是一項重要的技能。當數據探索不再帶來洞察力時,你則需要更強大的工具。
之后再學習更多的語言和工具
最終你會想學習更多的編程語言。就像工具箱中沒有一個***的工具一樣,沒有一種編程語言能夠***的解決你所有的數據問題。
以下是在學習R語言之后,你可以考慮學習的語言:
Python
Python是一種值得考慮的多用途編程語言。在O'Reilly最近的調查中,Python是數據科學家中第二受歡迎的編程語言。它具有優秀的可視化工具,以及機器學習工具。我認為,對于大多數人來說Python是應該學習的第二種語言。
D3
我超愛D3。D3中創建的可視化效果很棒,而且D3可視化的交互性非常適合構建儀表板。但它的伸縮性不夠好。對我來說,D3更像是一個“工匠的工具”,它非常適合構建一個優雅的數據可視化,但是在需要幾十個合作伙伴支持的情況下,手動創建這樣的東西是不可能的。
與此同時,我還樂觀地認為,R語言的ggvis將允許R語言用戶創建高度動態和交互性的可視化,因此在某種意義上,R語言用戶需要學習R的ggvis而不是D3。
總結:學習R語言,并集中精力
如果你是初學者,R語言是很好的選擇。同時需要專注于學習數據科學的技能。
在學習過程中,你可能會看到很多新技術和新工具,或者一些令人眼花繚亂的數據可視化。
看到其他人的成果(并發現他們正在使用不同的工具)可能會導致你想嘗試其他的東西。相信我:你需要集中注意力。你需要花上幾個月(或更長時間)才能真正投入到一個工具中。
如上所述,如果你確實希望在數據科學工作流程中提高技能。至少在數據可視化和數據處理方面,你得具備扎實的技能。
在R語言上花費100個小時,將比在10個不同工具上各花費10個小時得到更高的回報。***,通過集中精力,你的時間回報率將更高。不要因為“***,最炫的事物”而分心。