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