零基礎數據分析——R語言入門

2021-02-19 小鵝求職

Hello大家好,我是小鵝醬!

 

對於在美留學的商科小夥伴來講,Python和R都並不陌生。作為在國內接觸較少的程式語言,從0開始的學習過程也讓許多留學生茫然無措。希望我自身的經歷分析,能給正在學習和準備學習數據分析或者R語言的同學們,提供一些值得借鑑的信息。

萬事開頭難。就算是簡單的寫作業,許多人也會在翻開練習冊與落筆中間苦苦掙扎。

我對於R語言的認知,就像是剛學了二元一次方程去看微積分,除了下載R和RStudio完全無從下手。剛到美國的陌生環境,以及暑期學期稍重的課程安排,更加擴大了我對未知領域的畏懼。當時的我沒有考慮過究竟是它太難、進入門檻太高,還是我始終不敢邁出第一步。

 

留學生常戲說的「Deadline是第一生產力」在這時體現了出來。即便面對編程我有些稍顯退縮,但完成作業的時限在逐漸臨近,我不得不開始面對。

 

所幸,老師在課堂上的授課內容十分詳盡,最開始幾節課的簡單統計學知識也在大學期間早有接觸,跟著例題操作學習並沒有想像的複雜。


從開始的在原腳本基礎上改數據,到自己複寫原腳本內容,從read,  summary, mean 到abline, lm, predict。結束前兩節課的學習,我發現R沒有我想像中的高不可攀,許多函數都簡單易懂,和Eviews以及Excel也並沒有天南地北的差別。在結束了與第一次作業的緊張交鋒後,再回頭看開始時候莫名其妙的畏懼,也就逐漸明白了這其實更像是自我設限的心理障礙:把面對的問題設想的過於強大,擔心付出成倍的時間後也無法取得哪怕小小的成功。所以,其實學習數據分析的起步,更需要的是嘗試,寫下第一行代碼,讓他成功運行,就是很好的開始。不要只看到問題然後怯步不前,要記得,你自己比想像中更為強大。老師的授課內容再具體也終究是為課程服務,與課程無關的編程知識我又知之甚少,僅僅幾個簡單的函數並不能滿足對軟體的實際應用需求。打個比方,這像是剛剛學會四級單詞就開始學託福,中間始終有一部分欠缺的知識早晚需要彌補。但當解決問題看起來不再遙不可及,我也有了自學來補全自己不了解的知識的勇氣。DataCamp, Coursera, edX, 我成了眾多學習網站的常客。抱著「就算多看幾遍也要搞懂,就當成是練習英語聽力也好」的心態,我沒有把自學當作是挑戰或者難關,就單純作為豐富知識儲備的方式,竟然堅持完成了幾門課程。


與授課內容不同的是,網上學習內容更加生活化,實用性也更強。大家可以按以下的步驟做簡單的 Intro:

Step 1: 數據導入 

不同格式的表格需要不同的代碼導入,(當然也有如下圖的簡便方式)。當文件路徑不能讀出表格中變量時,用summary讀取總結也是一種簡便的操作方式


Step 2:數據清洗

在實際生活中,多數情況的數據都需要先做清洗工作,排除異常值、空白值、無效值、重複值等等。R的數據清洗可用的方式很多,boxplot去掉異常值或者直接命名subset為新的指標都能夠讓數據更加清晰。

Step 3:數據整理

清洗後還需要進行數據整理,這是為了更加方便對目標問題的進一步分析。針對不同的雜亂數據特徵又對應處理函數:

1.列名是值(value)而不是變量(var) ---gather

2.變量同時存在行和列中 ---spread

3.多個變量位於同一列   ---seperate

4.合併/拆分不同表中觀測值---seperate+unite

建立體系的時間或許會比較久,但是系統的自學可以讓大家更加了解R,也更明白自己的每一步操作有什麼樣的目的。理順脈絡比起死記硬背永遠更加高效!




當能夠複製內容,或者更改數字和對象時,我們僅僅是記住了相關的知識,而數據清洗整理也僅僅是常規工作的一部分。只有不斷重複這個過程,才能完成所謂「量變到質變」,有真正能力上的提升。

 

這個過程無疑是枯燥的。不同的數據表有不同的「脾性」,如果不夠了解數據屬性或者數據處理不完善,就會導致一行行紅色的錯誤提示,難以得到需要的結果。

 

不過R的複雜也會帶來相對更高的成就感,我的成就感就來源於數據可視化的部分。當簡單的灰白圖例變成彩色,Excel中的組合圖表用代碼展現出來,甚至通過ggmap在分類後加入地圖來直觀表現時,我甚至有把輸出圖都列印再收集起來的衝動。

 

在不斷嘗試中,我找到了兩個對我而言最有效的方法:


01

從GitHub中找例子和數據,分析代碼,再複製,然後把學習過的函數一一應用


Tips:

這種方法的優勢在於會有現成的例子提供給你學習,自己操作,再比較給出的原始碼改進,實操+反思+改進的形式能更好地加強我的記憶力。


Tips:

通過筆記輔助,加上自學時的基礎,這並不困難,也更能看到成果。在讀完一本書時,可以自信地表示我真的讀懂了它,而不僅僅是看了就過了。

重複學習的時間比較漫長,我現在也仍在學習中,的確,進步並沒有那麼明顯。但,如果你覺得困難,你應該高興,這代表你正在進步~



在更了解R之後,我發現許多與數據相關的任務都可以通過它解決。分析Uber和Lyft的接單數據,InsideSherpa上的案例項目,包括電力市場的基本分析,或簡單或複雜,我開始逐漸習慣用R解決問題。

 

不可否認,有事簡單的數據用Excel更加高效,但是R會給我帶來更多樂趣樂趣。簡單的顏色代碼使用都能讓我反覆試驗,試圖找到最和諧的顏色;通過不同的cluster(簇)尋找數據規律也讓我自己覺得更像一名分析師。

任務對我而言不再是負擔,我把它當作一種樂趣。就像是走迷宮,當你不再覺得畏懼,並且相信通過嘗試一定能成功時,出口並沒有那麼遠。當然,正確的方法會節省你走出迷宮的時間,但是試圖依靠別人的指引走完全程的話,還是會被困在下一個迷宮裡。

其實數據分析沒有想像的那麼困難,Excel到R也不是了不起的進階,但是敢於開始、找對方法、然後重複嘗試、主動應用,才能真正地「熟練掌握」一項技能。

 

隨著數據分析的應用愈發廣泛,數據處理與呈現逐漸從專業技能變為通識性技能,甚至成為許多崗位的必要技能或者求職加分項。所以,還在學校、有更多時間的我們,為什麼不從今天就開始,了解數據,享受分析,感受進步,然後「編程」一個更好的自己?

相關焦點

  • 零基礎學習R語言數據分析
    雖然有所裨益,但是會分散很多學習R的精力,可以作為後期提高的書籍,但是作為入門不太合適,像《The R book》。講完了「不好的」R的學習資料,可以規避一些「誤入歧途」的風險。下面介紹一下我覺得比價有用的學習資料。學習任何語言的捷徑就是Learn by dirty。
  • RStudio|用R Markdown生成你的R語言數據分析報告
    Rstudio有三種方式可以嵌入代碼塊:●  快捷鍵Ctrl + Alt + I ●  直接在工具欄點擊Insert命令●  手動輸入```{r} 和 ```    展示一下R Markdown 中嵌入代碼塊的效果:
  • 【零基礎入門】手把手帶你系統化學習R語言
    如果說有一門簡單易學、通俗易懂並且集上述功能為一體的程式語言讓科研人員從中解脫出來,R語言當仁不讓。 R語言是一款免費開源軟體,其提供了超過12000個R包,幾乎所有類型的數據分析任務都可以在R中完成。
  • 數據分析學習入門寶典 狗熊會《R語言:從數據思維到數據實戰》
    近日,數據產業高端智庫,狗熊會推出又一教材力作——《R語言:從數據思維到數據實戰》。這本書可以作為高等院校數據科學相關專業教學的通用教材,也是新手學習的入門寶典。全書採用實例講解,新穎有趣,深入淺出,把R語言簡單靈活、包羅萬象的特點體現得淋漓盡致。無論讀者數據分析基礎如何,都能通過這本書快速上手,提升實戰能力。
  • Python入門學習之數據分析實戰獲取數據
    想用一個完整的案例講解Python數據分析的整個流程和基礎知識,實際上以一個數據集為例,數據集是天池上的一個短租數據集,後臺回覆:短租數據集,即可獲得。先來想一下數據分析的流程,第一步獲取數據,因此本節內容就是獲取數據以及對數據的基本操作。
  • 零基礎入門R語言數據分析指南
    雖然有所裨益,但是會分散很多學習R的精力,可以作為後期提高的書籍,但是作為入門不太合適,像《The R book》。講完了「不好的」R的學習資料,可以規避一些「誤入歧途」的風險。下面介紹一下我覺得比價有用的學習資料。學習任何語言的捷徑就是Learn by dirty。
  • R語言學習路線和常用數據挖掘包
    對於初學R語言的人,最常見的方式是:遇到不會的地方,就跑到論壇上吼一嗓子,然後欣然or悲傷的離去,一直到遇到下一個問題再回來。那麼,眾多書籍中,一個生手應該從哪一本著手呢?入門之後如何才能把自己練就成某個方面的高手呢?相信這是很多人心中的疑問。有這種疑問的人有福了,因為筆者將根據自己的經歷總結一下R語言書籍的學習路線圖以使Ruser少走些彎路。本文分為6個部分,分別介紹初級入門,高級入門,繪圖與可視化,計量經濟學,時間序列分析,金融等。
  • 為什麼做數據分析首選R語言?
    先來了解一下數據分析,就是以商業目的為驅動,所開展的獲取數據、處理數據、分析數據、展示數據和撰寫數據結構報告的一系列科學過程。R 是一種免費的、開源的語言和操作環境,其初衷是為了統計計算和畫圖,但是 R語言現在能夠做的事情已經遠遠地超出了其初衷,可以在諸多領域進行應用,比如,數據挖掘、機器學習、社交網絡、生物信息、金融數據分析等。同時,R 提供了成千上萬的專業模塊和實用工具,是從大數據中獲取有用信息的絕佳工具。許多研究院,公司和大學已經使用 R。
  • R語言從入門到精通:Day1
    今天是我們的系統教程《R語言從入門到精通》的第一講,前面的背景講解中《從今天開始,每天學點R語言~》,已經深入探討過R語言的重要性以及學習R語言的必要性
  • R語言從入門到精通:Day6-R語言數據操作進階及控制結構
    最近經過前面幾次推文的學習,我們的R語言教程已經講解了快1/3的內容,相信大家對R語言已經有了初步的了解,特別是感受了R語言在數據處理領域的強大功能
  • 【R教程】《即刻R入門》What is R?
    【陸勤看點】R是一種高級語言,也是一種軟體環境和平臺。R源自S語言,吸收了S語言的優勢。R適合做統計分析或數據分析,產生高質量的圖片。但是,其功能不局限於這些。R有著廣泛地用途,很多數據分析師、數據科學家都用R做事情,比方說數據預處理、數據分析、數據可視化,甚至數據報告等。R提供和實現了很多數據分析方法。
  • 使用R語言劍指商業數據分析
    1992年,Auckland大學的Robert Gentleman 和 Ross Ihaka 為了能夠更有效地開展大學裡的統計入門課程的教學,他倆決定引入S語言來開發一套軟體,1994年該軟體最初版本基本成型。這就是後來我們用到的R的雛形啦。
  • 零基礎如何學習R語言?千萬不能錯過的課程
    程式語言排行網站TIOBE的數據顯示,R語言正在變得越來越流行,而且被廣泛應用於生物統計、商業數據分析、機器學習和數據科學等領域。大勢所趨,對於科研人員來說,無論將來在學術界發展,還是在工業界打拼,都應儘快掌握這個功能強大、好學實用的數據分析工具。
  • 如何入門R語言
    整體內容非常充實,包括了因子分析,主成分分析等多元統計方法,也有線性回歸、廣義線性模型等回歸模型的詳細介紹。在畫圖方面,作者更是根據不同圖形特點,做出了詳盡說明。而且這本書是圖靈出的,裝幀精美,紙質上乘,捧在手裡感覺非常上檔次,價錢也不貴。綜上,這是我心中最好的R語言入門書籍,沒有之一。2.《R語言編程藝術》。
  • 全棧數據之R語言常用包和函數
    全棧數據之路系列:全棧數據之Linux常用命令總結全棧數據之MySQL常用命令總結全棧數據之Python常用工具和函數《R語言實戰》,這是高濤、肖楠等翻譯的一本書詳細全面介紹了入門、圖形、統計、回歸、方差、功效分析、廣義線性模型、主成分、因子分析
  • 知識分享 | R語言——大數據分析的一把利劍
    有些人問我是否應該學習在學R語言的同時學習Python。我的答案基本上是否定的,除非你需要使用一種以上的語言,否則你應該選擇一種語言進行學習。專注於一種程式語言的原因是,你需要更多地關注過程和技術,而不是語法。你需要掌握如何通過數據科學工具來分析數據,以及如何解決問題。事實證明,R語言是最佳的選擇。
  • R 語言之數據分析「Resampling」
    ‍‍‍‍‍‍‍‍‍本節主要總結「數據分析」的「Resampling」重抽樣思想,並通過 R 語言實現。有一種東西叫作「傳統」,它在很多時候很有用,但會讓你思維固化,在新的環境下讓你出錯。在總結回歸分析和方差分析的時候 ④R語言之數據分析「初章」,我總是會在模型的建立之前提到「統計假設」,在模型建立之後進行「假設檢驗」,原因想必大家都能理解,就是因為這些「統計假設」是我們模型建立思想的基礎,是支撐我們模型正確性的「必要條件」。但是,不可否認的是,這些「必要條件」最終會成為我們「數據分析」的局限,讓我們對「不滿足條件的數據集」束手無策。
  • |科研家為你打開精通R語言的大門
    如何學習好R語言2. R語言的最好資源,一個就夠!【原創果子生信技能樹2 17】3. 開啟R語言學習之旅,拒絕從入門到放棄【原創子非魚酸 談 2019-08-28】第三步:R語言入門基礎教程1.R語言統計快速入門2. 數據分析的統計學基礎3.
  • R語言從入門到精通:Day1-R語言的安裝
    今天是我們的系統教程《R語言從入門到精通》的第一講,前面的背景講解中《從今天開始,每天學點R語言~》,已經深入探討過R語言的重要性以及學習R語言的必要性
  • Tidy時代R語言學習的一些ABC
    主要就是寫一些和數據分析(或者用時髦的說法,數據科學)相關的內容。我是一個普通的數據工作者,統計學專業出身,在大學裡教過書,也做過一些實際數據工作。數據科學於我而言,可以算工作也可以算一種愛好。這個號用到的主要數據工具是R語言。原因很簡單,我用R用了11年,順手。