您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關給R語言初學者的幾個建議有哪些,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
最近有很多人在問我關于R語言學習入門的問題。
說實話,這個話題,如果由一個在數據科學領域叱咤多年、項目經驗豐富,代碼寫的很溜的老司機來回答,結果會更有信服力。
而我并不適合來回答這個問題,理由如下:
首先我的學習周期很短,正式開始于2016年的9月份,算起來僅有10個月左右,有點速成的意味;
其次我在學習R語言之前并沒有任何的編程基礎(如果不算大學修過的SQL和自己只會一點兒皮毛的VBA的話);
第三我是一個文科生,沒有很強大的數理基礎和統計背景。
但是如果換一個角度來思考,我又覺得我很有資格來回答這個問題,理由如下:
作為一個文科編程小白和數學盲,我更懂和我一樣編程零基礎、數學又不好的初學者在初次接觸R語言之時,內心的困惑和掙扎;
按照我的學習周期及其效果來看,我的學習效果得到了實戰檢驗和諸多讀者的認可;
我的R語言學習之旅是在大學校園里完成的,而非是在職場的強壓下被逼無奈之下開始的,所以不帶很多的功利性和企圖速成的快節奏,同樣也是按需去學,學的都是真把式和投入回報率最高的部分,所以對于基礎的把握及學習的節奏的經驗更值得大家借鑒。
下面我開始我的回答(biaoyan!!!)
關于學習初衷:
首先我想說的是,在打算學習R之前一定要先問自己一句,你學習R語言的目的是什么?
是大學專業課程的需要?或者提前儲備自己的數據分析技能?還是為了應對職場壓力,被動充電?亦或者僅僅一時心血來潮,看到如今的大數據發展的如火如荼、不由自主的來湊一波熱鬧?或者是純粹只是為了興趣、實現自己的某些想法。
因為目標定位不同,意味著你能為此打算花費的時間長度不同、付出的心血不同、學習的路徑不同、學習學習的模塊不同,達到的效果也不同。
一定要確定好目標,按需去學,否則你在入門之前就首先會陷入迷茫和困頓,因為R語言除了內置的幾個基礎包之外,CRAN上可用的有不下上萬個擴展包,如果再算上GitHub上 托管的個人開發的小眾包,可能有好幾萬了,掰著指頭數一數,夠學一輩子了。
關于對R語言的理解:
這里我講一下自己對于R語言的理念,我不想重復那些已經被轉播爛了的概念解釋、發展歷史、及其功能簡介。
R語言是統計學家開發的,出生之初就決定了它的使命是統計計算和數據可視化,這算是R語言核心功能的兩個大方向。
對于這兩個方向而言,統計計算的學習,基礎都在課堂理論與專業背景上,說實話,R語言只是提供了一個實現的平臺而已,它并不該改變或者創造新的理論、模型。
而這些統計計算所使用的公式、用到的模型算法,大部分都被封裝成一個個擴展包里,導入包之后,僅需調用對應函數、設置對應參數即可,這些函數與Excel里面的函數本無區別,無需恐懼。
至于參數的調優、模型的檢驗與優化,這些東西所依賴的知識背景,也基本都是來源于課堂學習和專業背景,與R軟件的關系并不大,對于需要自己寫算法的情況,你也僅是在函數的基礎上按照成熟的理論算法進行調優和計算,這與軟件無關(除了基礎語法之外),而與軟件之外的專業背景和行業經驗有關。
說到底,對于統計學習這一塊,重要的是理論背景、業務經驗、而真正需要R來實現的,僅僅是內置的擴展包函數、基礎語法而已。
類比一下SPSS的學習,一個不懂統計學的人很難學好SPSS,盡管他知道各種功能模塊和菜單(比如我),同樣,一個不懂統計學和數學的人也難學好R語言(統計計算模塊),盡管他很熟悉R語言的基礎語法和很多擴展包所能實現的功能(比如我)。
而對于R語言的數據可視化方向來講,則稍有不同。數據可視化確實并不十分依賴數學(除了專門用于算法呈現的圖形之外,很少有需要大量運算的),但是他高度依賴圖形語法,依賴可視化視覺呈現理念。
R語言中被瘋傳有四套語法(分別是基礎圖形語法、高級圖形語法、lattice語法、ggplot2語法)。但是遺憾的我只會其中之一——ggplot2。
我學東西的初衷很純粹,要把一個東西做好,不是一般的好,而是要令效果賞心悅目、達到驚艷眾人的目的,最重要的,要讓老板贊不絕口(難道你不想升職加薪嘛)。
這就意味著我要學一套優雅、高效、兼容性強、更加貼近可視化理念的語法。因為我的精力和時間不容許我把付出的心血平攤在四條任務線上,畢竟我的多任務處理能力極差。
倘若貪多,這樣造成的后果可能是,每一套都語法都能懂一些,但是每一套都表現平平,這是我不能容忍的。而ggplot2對我來說既是絕佳的選擇。
即便如此,語法熟練或者說能夠順記于心就真的夠了嗎?當然不是,即便能能夠熟記于心,也并不能保證自己能夠游刃有余的實現自己的想法,因為數據可視化除了依賴實現的工具和平臺語法之外,更多的是對于數據源的理解、對于可視化的理解、對于設計理念的融會貫通(怎么去配色、怎么去排版、怎么去搭配字體等)。
如果說軟件的學習也遵循二八定律的話,我覺得,R語言的學習也是如此。
百分之八十的精力需要花費在軟件之外的統計學理論背景、業務知識(可以自學呀),而需要使用R軟件來實現的部分,不要干巴巴的去學(當然R語言的基礎語法要牢固),理論搞透了很多事情就會水到渠成,迎刃而解了。這一點特別體現在對于統計與數據分析的學習上。
而數據可視化則需要你在牢固掌握基礎上(基礎語法運用、數據清洗技能),能夠熟練運用一套圖形語法(推薦ggplot2),然后不要過于將精力放在工具和代碼本身,而是多積累可視化素養和提升設計審美水平。(這里我將數據可視化的二八定律稍稍修改一下,五五定律比較合適,因為ggplot2不是很好掌握)。
至于設計、審美、創意這些柔性的東西,很難去通過一兩本書或者一兩套課程搞定,這些是內化于生活,積累于日常的點點滴滴,當然如果有意識的去通過一些課程、書籍慢慢培養,日積月累也會見效的。
關于R語言學習技能路徑:
通用技能學習:
基礎:數據結構、變量類型、數據導入/導出、數據合并追加、長寬轉換、數據索引、切片、聚合。
進階:正則表達式、合并與分列、匹配與替換、缺失值插補、去重與排序,控制流:循環與判斷。
專用技能學習:
統計與分析:去學課本吧
數據可視化:ggplot2語法+設計+審美+創意
基本上只要自己的通用技能學的差不多之后,就沒有必要一直鉆在這個小圈子里來回轉了,可以自己去找數據做案例,案例是最好的學習,進步大多源于案例中解決未知問題的能力。
我沒有讀過很多R語言的書,所以這里還是不薦書了,如果你真的有心去學,還用別人薦書嗎,看下豆瓣的圖書榜就成了。
平時多用搜索引擎去解決臨時性問題,基本上你遇到的問題,前人在網絡上都已經給出了很詳細的答案。
回答一些初學者的問題:
1、R語言是不是需要很深厚的編程基礎,我編程基礎基本為0,是不是不適合學這個?
我在學習R之前編程基礎也為0的,有編程基礎那叫程序員,程序員學習R語言都不用眨眼的~
2、學習R語言是不是需要很厲害的數學背景,我是文科生,數學超級差,是不是學不會啦!
握個手,我情況跟你一樣,也是文科生,數學超級差,如果你打算往數據挖掘方向轉型的話,可能需要補一下高數、線代、概率論統計與算法的東西,如果僅是作為業務分析工具、可視化之用,可能你的數學水平已經超越門檻了。
3、我R語言學了很長時間,好像也有一年了,看了很多書,所有的基礎語法都會、ggplot2也都理解,但是就是自己寫代碼的時候寫不出來,畫圖的時候干著急。
你是不是一直在看課本,一直在看,連練習代碼都是copy課本上的,你做過多少實戰案例,分析過多少真實業務數據、有多少新知識是在課本之外的實戰過程中解決的,多看不如多練。
4、求地圖模板!!!
抱歉,我不提供模板,我只提供代碼和案例數據!(R語言很難做成模板)
5、你好,在嗎,可以幫我畫個圖嘛~
……(我想說一句不在的)
6、可以推薦一下入門書嗎?
其實我并不覺得R語言的入門需要入門書,因為我在入門階段也沒有照著書去學,但是既然大家提出來這個問題,我還是給些建議吧,如果你是在校學生,時間充裕,推薦《R語言實戰》,不過一定要有選擇性的去看,不要通篇看,前面幾張關于數據結構、變量類型、數據清洗的要好好看(略過概念性和純解釋性內容),中間統計學習部分按需酌情去看,最后的文檔報告輸出部分謹慎去看(LaTeX和HTML你不一定能用得到的)。
數據可視化推薦兩本吧,《R語言可視化手冊》、《ggplot2:數據分析與圖形藝術》(首選第一本,比較接地氣,第二本雖然是作者本人大作,但是立意較為獨特、高遠、對初學者不是很友好)。
如果你是職場人士的話,那么并不十分推薦以課本為主,因為工作時間占用太多,不可能抽出大量時間用于練習,推薦工作之余利用碎片化時間聽一些在線課程。(入門可以聽免費的,天善智能社區就是很好地免費課程學習平臺,我自己在天善智能也有開課哦,而且里面有大數據主題的多門免費課程,此外網易云課堂里也可以淘到很多好課)。免費課程用于入門,然后借助接觸一線業務數據的機會,多把R語言用工作實踐,你會進步的更快。
7、小魔方,你是如何學習R語言的,可以傳授一些經驗嗎?
這個問題我太不好意思回答了,不過我還是舔著臉講一下吧,我屬于實戰派,平時練習都是直接使用爬蟲抓網絡上的數據,實習的時候也是能用R的場合堅決不用Excel,逼著自己找R語言的使用場景,然后通過微信公眾號、知乎專欄和個人博客進行持續性的內容輸出(強迫自己去持續練習)。
當然,打撈基礎很重要,否則只能每次寫代碼的時候都放著筆記本在身邊,那里不會看哪里(很浪費時間的)
善用幫助文檔,R語言中有強大的幫助系統,你可以直接進入擴展包的文檔主頁, 也可以使用?info來搜索某個函數的詳細使用方法及參數設定規則。
保證規律性的練習,每天都要抽出固定時間來練習,具體安排視個人的具體情況。
最后給一句忠告,一門用于數據分析的編程語言,其只有用于數據分析實戰才能發揮作用,就像老虎只有在森林里才能具備獸王的野性,所以一旦感覺自己掌握了基礎之后,最后的進階方式就是用于實戰。
上述就是小編為大家分享的給R語言初學者的幾個建議有哪些了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。