2015年2月18日 星期三

必學的10個R套件

最近非常的忙碌,終於逮到一個機會在除夕夜前,將幾個月前想要寫的文章整理一番。

圖:R de jeu


R軟體已在這兩年如黑馬般,串升到十大必學語言之一。從各種數據可以觀察到,由於R的開發者專注做資料分析這塊,因此資料分析的資源非常豐富,也奠定R這個工具在處理資料的獨特定位。

不過R的套件(Package)或稱R包,其實非常的豐富,目前已經有6,328 (2015/02/18)個套件,一定會有人想知道,到底哪些套件使用頻率最多,且被推薦使用。
所以筆者收集了不同的排名報告,包含Data CampyhatR-statistics blogRevolutions,整理了您不能不學的10個R套件。

整理如下:

這個套件是玩R繪圖必須知道的套件,
擁有非常強大的繪圖功能。早些年ggplot2與lattice同為高級繪圖套件,不過看來ggplot2略勝一籌。

這個套件可以將vector、list、data.frame的資料做快速的切割、應用、組合,是非常好用的套件,像是join功能,可以做inner、left、right、full等join功能。
plyr可以讓工程師以資料庫的概念,有效率的把玩資料。

這個套件跟plyr類似,但是針對data.frame、data.table、以及多種資料庫為基礎的資料。將資料做快速的切割、應用、組合,尤其處理大量資料,dplyr是非常好用的工具。 


這個套件可以幫助我們將資料進行縱向、橫向轉換,筆者發現對於該套件處理連續型或時間資料是非常好用的,如空氣品質資料、證券行情資料等。通常會再搭配dplyr,讓資料分析事半功倍。

這個套件更不用多說了,它可以讓R跟C++做完美的融合,演算法玩深一點的朋友就會發現,這個套件是調整效能的最佳工具。

該套件對於資工領域的人應該不陌生,digest可以用來處理雜湊函式(hash function),對岸譯為哈希表。雜湊函式通常是用來做資料壓縮,使資料量變小,常見像是網頁數位簽署、登入驗證、壓縮程式,甚至是現在的NoSQL Key-Value儲存概念,都有雜湊函式(Hash Function)的身影。值得一提的是這個套件的貢獻者Wush Wu是唯一台灣人,且也是Taiwan R User Group的共同創辦人。

這個可以透過正規表示式(Regular Expression)去處理大量的字串,像是檢查、配對、替換等等。

主要提供日期、時間、時區的標準化處理。

這個套件可以協助我們透過R做各種報告,像是HTML、Sweave等等,好處是我們可以透過該套件做可重製之研究(Reproducible Research),該套件目前已經內建在R studio中。此外這個套件的貢獻者也有Wush Wu。

這個套件是做原型(prototype)非常好用的工具,尤其在大型公司的資料團隊,我們經常會需要做原型在進行展示。透過shiny就可以達到這個目的。知名的例子像是ebay就是採用shiny產生原型測試後,在用Java語言佈署到應用層。有興趣可以參考筆者整理去年底2014 R Taiwan 研討會來自eBay資深資料採擷工程師的簡報

在此也祝大家新的一年新年快樂、事事順心、揚眉吐氣。


參考資料: