天天看點

為什麼選擇R語言為什麼選擇R語言

為什麼選擇R語言

在網際網路、大資料快速發展的大時代背景下,很多小白(包括本人)都希望能夠掌握資料分析、圖形處理、資料挖掘等方面的技能,然而在學習之前卻艱難萬分,甚至難于學習本身。下面是常見的幾個問題:

  • 我是XX專業,應該選擇哪門語言呢?
  • 程式設計零基礎,選擇哪個比較好呢?
  • 學習什麼語言将來會吃香呢?
  • 我以後想從事資料挖掘工作,該學些什麼呢?

Emmm,算了吧,既然有這麼多種選擇,再加上我還有選擇困難症,還是不學了吧。及時行樂,保護頭發。

然而如此多的問題歸根結底就是應該選擇什麼工具、應用什麼軟體的問題。正所謂的:“工欲善其事,必先利其器”。今天就給陷于水深火熱抉擇中的大家推薦一個數理統計、繪制圖形方面的好幫手:R語言。

1、R語言的前生今世

R語言,一種自由軟體程式設計語言與操作環境,主要用于統計分析、繪圖、資料挖掘等方面。R本來是由來自紐西蘭奧克蘭大學的羅斯·伊哈卡(Ross Ihaka)和羅伯特·傑特曼(Robert Gentleman)開發(名字首字母都是R,也是以稱為R語言),現在由“R開發核心團隊”負責開發。R語言是基于S語言的一個GNU計劃項目,是以也可以當作S語言的一種實作,通常用S語言編寫的代碼都可以不作修改的在R環境下運作,其中R的文法是來自Scheme。

2、R語言的優勢

  • 免費。這個優勢想必不需過多解釋,多數的統計軟體價格不菲,而R是完全免費的,不需要任何授權費用,且功能又不輸于付費軟體,對于個人和企業來說在成本方面都有一定的吸引力。
  • 開源。源代碼的開放性保證了使用者可以知道所有的細節,對于開發者和企業級應用是有價值的。由于各種包和函數的透明性極好,這使得對函數的調整和改良變得非常便利,隻需要把源代碼調出來,自己稍微修改一下就可以滿足自己的需求,而簡簡單單的這種事情放在任何其他統計軟體裡都近乎奢望。
  • 資源豐富。對于使用者而言,R的開放性使得其社群巨大,接近6000個擴充包涵蓋了各種相關領域的方方面面,并且涉及的部落格、文章等也數不勝數。
  • 時代前沿。 R囊括了在其他軟體中尚不可用的、先進的統計計算例程。事實上,R語言中新方法的更新速度是以周來計算的。不少統計、計量等等新工具在學術界發表,作者本人或者團隊會在第一時間、甚至文章發表前就釋出基于這個文章的R擴充包,使得其幾乎總是走在學術界前沿,正是基于開源免費的特性,使用者可以第一時間擷取資源。
  • 簡單易學。R語言中的資料結構非常簡潔,主要包括向量(一維)、數組(二維時為矩陣)、清單(非結構化資料)、資料框(結構化資料),适合新手快速操作,并且向量化程式設計大大減少了循環語句的應用。除此之外,對于大多數的各類模型和複雜公式,都可以找到對應的包(package),進而幾行代碼解決問題。
  • 絕佳的可視化。字不如表,表不如圖,R語言和可視化可謂是絕配,具有

    ggplot2, ploty, shiny, ggmap

    等多個可視化軟體包。可以毫不誇張的說,基本所有能夠想到的圖,都提供了解決方案。例如:

    ggplot2

    畫靜态圖,

    plotly

    畫互動圖、

    shiny

    可以用網頁互動,

    ggmap

    畫地圖類可視化。
  • 便捷擷取資料源。R語言可以從多處擷取資料源,并将其轉化為可用的形式,包括文本檔案、資料庫管理系統、統計軟體,乃至專門的資料倉庫,R甚至也可以直接從網頁、社交媒體網站和各種類型的線上資料服務中擷取資料。
  • 相容性好。 R可運作于多種平台之上,包括Windows、UNIX和Mac OS X,這基本上意味着它可以運作于你所能擁有的任何計算機上。

3、R語言的缺點

雖然個人比較推薦R語言,但是也不能是以對其缺點避而不談,以下是其相對缺點:

  • 需要寫代碼。相對于Excel、SPSS等統計軟體,R語言需要與代碼打交道,但是相對于滑鼠操作,代碼可以大大提升效率(前提是熟悉語言之後)。類似于拼音打字和五筆打字,一個學習曲線陡峭但是掌握之後效率更高,一個容易入門但是後期爆發力并不是那麼強。
  • 占用記憶體。R語言是統計學家編寫的軟體,正所謂:“成也蕭何敗也蕭何”,該軟體在提供資料處理便利的同時,所有的資料處理都在記憶體中進行,進而不太适合超大規模資料。解決的方法之一是可以用相應的包(如groupby)對資料進行處理後再導入R語言,或者和其他大資料處理工具結合起來使用
  • 運作速度慢。即時編譯,約相當于C語言的1/20,但是對于非超大型資料而言,在可接受範圍之内。

綜上所述,R語言是一門優秀的資料處理、資料可視化、資料挖掘軟體,且具備開源免費、簡單易學等優點,依托資料爆發的時代背景,必将進一步激發R語言的學習浪潮。

繼續閱讀