之前談到資料可以幫助我們做出更好的決策(資料導向的決策方式 – 讓資料幫助我們做出更好的決定),對於數據資料的處理,Excel強大的功能可幫助使用者完成資料分析和視覺化等工作,而在分析的資料量較大、或是想要將重複性的資料處理步驟自動化時,除了Excel VBA,也可以透過R來完成。
R是可用於資料探勘、統計運算與資料視覺化的程式語言,但是對於比較少接觸到寫程式的人來說,要如何開始使用R呢?
開發工具
不知道大家有沒有想過,為什麼在螢幕上輸入一連串的程式,執行後就會跑出結果?其實程式從撰寫到執行,需要經過很多個步驟,並透過不同的軟體工具來完成,例如可以讓使用者撰寫程式的編輯器介面,或是把人看得懂的程式轉換成機器語言,讓電腦能解讀與執行的編譯器,還有在程式執行時用來連結其他程式的連結器等。因為開發程式會用到這些必要但分散的工具,如果能有一個把它們整合起來的軟體工具,程式開發起來就會方便許多,這樣整合好的軟體應用程式就是「整合開發環境」(Integrated Development Environment,簡稱IDE),這裡用來介紹R所使用的IDE是Posit Cloud免費版,註冊帳號之後即可開始使用。
登入後,建立一個新的RStudio專案:
專案建立完成,進入程式開發介面開始撰寫程式:
安裝套件
接下來安裝我們需要用到的軟體套件,Tidyverse是使用R進行資料分析時非常好用的套件組,許多很常使用到的套件都包含在裡面,例如用來讀取資料的readr、清理資料的tidyr、處理資料的dplyr、繪製圖表的ggplot2等;示範用的資料則使用R內建的企鵝資料集palmerpenguins。
執行後,在新的分頁瀏覽載入的企鵝資料集:
繪製圖表
我們使用ggplot2套件來繪製圖表,ggplot2的繪圖方式主要分為兩個部分,第一個部分是使用ggplot()來指定使用的資料集並建立圖表框架,第二個部分則是使用geom()來建立圖層和要用到的圖表種類,並透過設定geom()的mapping引數(argument)來指定X軸與Y軸的資料、客製圖表項目等,建立好的圖層以加號「+」添加到圖表框架。
以繪製企鵝資料集的散布圖(scatter plot)為例,使用的geom函式為geom_point(),如果想瞭解蹼的長度與體重的關係,可指定X軸為蹼長度(flipper length)、Y軸為體重(body mass),然後用顏色(color)來區分企鵝品種(species),轉換成對應R語言如下:
執行後,即可在右下方的視窗看到繪製好的散布圖:
如果想要以長條圖(bar chart)顯示不同蹼長度的企鵝數量分布,使用的geom函式為geom_bar(),指定X軸為蹼長度(flipper length),長條圖的填滿顏色(fill)以企鵝品種(species)來區分:
除了使用不同的顏色來辨別資料群組,還可以加上facet函式的圖層將子群組進一步來區分,例如在前面企鵝的蹼長度與體重資料散布圖中,使用facet_wrap()可以將資料點在X軸上依企鵝品種分別顯示出來:
如果要加入第二個參數來區分資料群組,可以使用facet_grid(),例如設定以性別(sex)和企鵝品種兩個參數來分群顯示資料點,參數之間以「~」分隔:
輸出結果
繪製好的圖表可以從圖表上方的Export下拉選單中,選擇圖表要輸出為圖片或是PDF檔:
此外,若是以R Markdown輸出,可以保留程式碼及加入文字說明,不但能讓讀者更容易理解我們的資料分析報告,還可以兼顧程式的再現性,是一個非常好用的報告工具,之後我們會在另一篇來介紹。