用R做數(shù)據(jù)分析
R語言是由 Ross Ihaka、Robert Gentleman二位創(chuàng)建的,這也許可以解釋為什么叫R語言?,F(xiàn)在由“R開發(fā)核心團隊”負責開發(fā)。R是基于S語言的一個GNU項目。
一、R語言介紹
R是為統(tǒng)計計算和作圖的一門語言和環(huán)境。是一個GNU項目,和S語言和環(huán)境很相似,S語言是由BELL實驗室的John Chambers和他的同事開發(fā)的。R語言可以認為是從S語言衍生而來的,他們之前有很重要的不同,但是大多數(shù)用S語言寫的代碼也可以在R中運行。
目前R在高校非常流行,特別是隨著這幾年互聯(lián)網(wǎng)的發(fā)展,(R在一些大公司的運用得到的實踐,例如:國外的google、linkdin、facebook等,國內(nèi)一些大型互聯(lián)網(wǎng)公司也在開始使用R),及隨著互聯(lián)網(wǎng)版權的意識增強,也促使了R在互聯(lián)網(wǎng)的發(fā)展。當然R在很多領域都有很廣泛的運用。
R語言是開源的,同時可以運行在各種平臺上(Linux、Windows、MacOS等)。R的許多軟件包是由R語言、 LaTeX、Java及最常用C語言和Fortran撰寫。
可以說現(xiàn)在R包含各種各樣的功能,可以說目前你能想到的功能,都可以找到一個或者多個R包來實現(xiàn)。幾千個R包,哪個才最適合你呢?“最適合你自己的R包,也許就是你自己寫的那個包”。
二、 R語言的特點
1、變量不需要申明即可引用。
3、R語言是一個函數(shù)語言。
4、向量中的下標是從1開始引用的。
5、R是腳本語言、面像對象;
三、 如何學學習R語言
《R語言學習由淺入深路線圖》 這篇文章大家可以參考,這篇文章簡單介紹了一下R學習的資料,大家可以根據(jù)需要進行參考。那么如何才能學好R,個人理解有以下幾點:
1、不要期望你能學會R中所有的包。不要把目標定的那么高。
2、關鍵能理解R語言的內(nèi)涵。多看看CRAN上的相關文檔,例如:季刊、R語言相關新聞,特別是每次版本更新的一些內(nèi)容。
3、運用
如果你是做數(shù)據(jù)分析相關的工作的,一定要把學習到的R語言知識運用到你的工作中,不管你把R語言當用一門編程語言還是統(tǒng)計工具,用的多了,自然你就有感覺,很多東西你就記住了。
4、持續(xù)
每天花點時間寫幾條R代碼,實現(xiàn)一些小功能。如果你工作上就用R,那是最完美的。
5、多看
多看別人寫的代碼,R運用的案例。你可以google一下R會有很多好的博客,文章。很多人都是R的GREEK。
6、開放
一定要開放、分享的心態(tài)。多與別人交流,不要總是需求,一定要學習給予。(我是我個人觀點,如果要真好用到R,讓R發(fā)揮價值就是必須的。)
7、總結(jié)
學到的東西,及時做好總結(jié),可以總結(jié)成案例或者筆記。
五、 我對R語言的理解和看法
隨時互聯(lián)網(wǎng)的發(fā)展,特別是互聯(lián)網(wǎng)對于版權、成本的因素考慮,因為免費、開源使越來越多的公司開始用R語言來處理數(shù)據(jù)、分析數(shù)據(jù)、完成模型等,當然這其中也伴隨著對于數(shù)據(jù)價值挖掘的,特別是在大數(shù)據(jù)的背景下,想通過對數(shù)據(jù)挖掘&分析建立自己的競爭優(yōu)勢。
R不僅免費還有各種各樣的的功能包資源。從某種程度上講,任何你想要的功能應該都可以找到對應的包,只是說是否完全滿足,對于一些算法研究人員來說,可以在原來的代碼的基礎進行借鑒。這也許就是為什么R最開始主要用到高?;蛘邔W術領域(當然和國外學者、專家這種自由、開放的環(huán)境或者意識有很關系,這也許就是為什么許多開源軟件都是國外出來,很少看到國內(nèi)的大公司有什么好的東西開源)。
很多行業(yè)人士都說R是未來的“王道”,就像unix的發(fā)展過程一樣。我覺得未來一定有屬于R的一片天空,而且這種天空可以說是接近無限。所以,對于有志于從事數(shù)據(jù)挖掘、數(shù)據(jù)分析這個行業(yè)的朋友來說,掌握R是也許會成為未來的必備技能(就像現(xiàn)在數(shù)據(jù)分析師大多要求會:SQL)。最后,我對R語言的理解與總結(jié)可以概括為一句話:“開源、二次加工、分享精神”。