R 這個名稱其實代表兩個東西,一個是 R 這個程式語言,另外一個是執行 R 程式的軟體環境,所以 R 這個字同時是程式語言以及軟體的名稱。R 是一套統計分析及繪圖的語言及軟體,誕生於 90 年代初期,由奧克蘭大學的 Ross Ihaka 與 Robert Gentleman 所發展出來的,它是以 S 語言(誕生於 70 年代的貝爾實驗室,主要作者為 John Chambers)為基礎所發展出來的一個 GNU 專案,免費且開放的方式釋出其原始碼,目前 R 這個專案是由 R Core Team 的二十位成員負責開發與維護,已是一套功能強大且廣為使用的自由軟體。
R 語言本身是屬於高階的直譯式語言(interpreted language),所以在程式執行之前,使用者不需要自己編譯程式,我們可以把心力全部投入在資料的分析上,不用去管太低階的電腦問題,就跟使用 Matlab 這類的程式語言類似。R 的介面不像 SPSS 之類的 GUI 產品,而是靠輸入簡單的程式碼來操作(如 SAS ),不過實際上因為分析功能大多已經有現成的套件( packages )可供使用且可以下載具備開發環境的軟體程式R Studio。
R廣泛運用在各領域上的分析處理,例如神經網路、遺傳演算法 (ex.Multiple Sequence Alignment )、生物資訊、金融科技、資料採礦、訊號處理、機器學習、網頁程式和大數據分析...等。
初級、中級、高級,以及相關領域書籍免費:R 是以開放原始碼的授權釋出的,完全免費。
開放:R 是S 語言的開放原始碼實做版本,您可以將 S-plus 的程式碼直接放進 R 中執行。
佔有率高:SAS 是最普遍被使用的統計軟體,但在學術界最普及的統計軟體是 R 與 S 語言,尤其在統計的期刊中,常常可以看到 R 語言的蹤跡。
運算:方便的矩陣操作與運算能力
分析:完整而連貫的資料分析能力(大量套件程式可供下載)
繪圖:強大的繪圖功能(可參考R graph gallery 網站)
跨平台:R 可以在各種平台上運作,包含 Windows、Macintosh、Linux 等數十種平台。
彈性大:R 是一種程式語言,使用者可以自行撰寫適合自己的分析程式。
互動式:傳統的統計分析軟體,是將所有的統計分析過程一次做完,產生報表,而 R 可以互動式的一步一步處理,使用者可以依照每一步的結果而決定下一步該如何處理。
以apt指令五步取得
# step 1 檢視 Ubuntu 版本1. 直接輸入我們想要計算的數學式子
2. 建立變數,將數值或各種資料儲存起來,其中< - 為 R 特有的指定運算子(assignment operator)
3. 尋找變數,使用apropos函數來搜尋關鍵字
4. 呼叫函數,ex 'sum( )' ,'exp( )'
5. 可用'demo( )' 來看一些示範程式,用 'help( )' 來檢視線上輔助檔案,或 用 'help.start( )' 透過 HTML 瀏覽器來看輔助檔案。
6. 用'dir( )'來檢視有哪些資料檔案;用 'q( )' 離開 R。
R的繪圖套件相當豐富,除了一般的2D統計圖表還可以輕易繪製出工程上常用到的3D圖形。此外,R還包含了一些特殊的繪圖功能,像是自訂函數、繪製世界地圖資料、互動式圖表、把圖表輸出到網頁上(R Shiny)等等。R的社群經常喜歡把這種跨領域綜合繪圖的能力概稱為「資料視覺化(Data Visualization)」,甚至結合設計來做跨領域系統的整合呈現傳達,稱為「資訊設計(Information Desigin)」。
R 的許多繪圖函數都能自動分析資料格式,並做出修正或錯誤回報,但並非每次都能順利執行。因此繪製統計圖表時,首先要注意的是資料型態與圖表是否吻合?
可以內建三種資料集範例來做測試「sleep」、「islands」、「rivers」為例。
par(mfrow=c(3,3)) #先切割圖表輸出為3 X 3
plot(sleep$extra,type="p") # 點圖
plot(sleep$extra,type="l") # 線圖
plot(sleep$extra,type="c") # 線圖去除資料點
plot(sleep$extra,type="o") # 線圖加上資料點
plot(sleep$extra,type="h") # 長條圖
plot(sleep$extra,type="s") # 階梯圖
plot(sleep$extra,type="n") # 空白圖