跳到主要內容區塊

ntuccepaper2019

專題報導

R軟體使用簡介
  • 卷期:v0029
  • 出版日期:0001-01-01

作者:林淑芬 / 臺灣大學計算機及資訊網路中心教學研究組程式設計師

R軟體不僅具有眾多經常更新的統計分析模組,且還有完整的程式語言功能、強大的繪圖功能。在這裡我們將簡易說明如何下載、安裝R軟體,如何在R軟體的圖形使用者介面模式編輯、執行R程式,並且進一步說明如何使用R作簡易的資料輸出入,以及如何紀錄R軟體執行的結果,讓初學R軟體的人也可以很快地上手。

前言
R軟體是國外一群熱心且專業的統計與資訊專業學者、志工共同努力發展的一套免費統計與科學計算軟體。R軟體不僅具有眾多經常更新的統計分析模組,且還有完整的程式語言功能、強大的繪圖功能。

此外,隨著資訊科技進步,全世界的資料累積速度遠遠超過企業所能處理的速度。無論科學研究或是企業應用領域,都需要資料分析做為組織或公司發展方向與決策支援的重要工作。免費又強大的R軟體,可以幫助我們輕鬆完成資料探勘的工作,在堆積如山的資料中,使用自動或半自動的方式把隱藏在資料中的有用資訊發掘出來。

更進一步,功能強大的R軟體還可以協助企業完成資料視覺化工作,企圖找出營運樣式(patterns)與趨勢(trends),提昇企業決策之能力。

目前R軟體可在Windows、Linux、Mac OS等多種作業系統上執行,這裡我們將以Windows為例,簡易說明如何下載、安裝R軟體,如何在R軟體的圖形使用者介面模式編輯、執行R程式,並且進一步說明如何使用R作簡易的資料輸出入,以及如何紀錄R軟體執行的結果,讓初學R軟體的人也可以很快地上手。

一. 下載及安裝R軟體
首先連線到R軟體網站http://www.r-project.org/,下載最新版的R軟體過程如下:


圖1 連線到R軟體網站

然後,選擇左側選單的Download, Packages CRAN,從台灣鏡像站下載最新版的R軟體。依序選擇「Download RfoRWindows」、選擇「install RfoRthe first time」、選擇「Download R3.0.1 foRWindows」、直接執行此壓縮檔、設定安裝目錄、選擇安裝元件,即可完成安裝。


圖2 從台灣鏡像站下載


圖3 選擇「Download RfoRWindows」


圖4 選擇「install RfoRthe first time」


圖5 選擇「Download R3.0.1 foRWindows」


圖6 執行壓縮檔


圖7 設定預設的安裝目錄

要使用中文版的圖形使用者介面,請記得勾選「Message translations」。


圖8 選擇安裝元件

安裝完成後,即可經由「開始」「程式集」「R」「Ri386 3.0.1」,進入R的圖形使用者介面模式。


圖9 圖形使用者介面模式

二. 直接在圖形使用者介面執行R指令
如果想知道rnorm函數的定義,可直接使用help指令,就會以IE打開說明文件。例如我們想模擬產生100個人的身高與體重,就可使用rnorm函數,並畫出身高與體重的X-Y散佈圖如下。


圖10 在圖形使用者介面執行R指令

下列則是以IE打開的rnorm,三個參數依序是為資料個數、平均、標準差。


圖11 rnorm函數的說明文件

以plot指令畫出的身高與體重的X-Y散佈圖則如下。


圖12 X-Y散佈圖

三. 使用R的簡易編輯器編輯及執行R程式
我們也可以將上述的幾個R指令儲存成外部文字程式檔,需要執行時再載入。從「檔案」選單的「建立新的命令稿」選項,使用R的簡易編輯器直接撰寫新程式,寫好後儲存成附加檔名.R的程式檔。日後要執行時即可從「檔案」的「開啟命令稿」選項,開啟外部的程式檔。


圖13 建立新的命令稿

編輯完成或開啟外部附加檔名.R的程式檔之後,「編輯」選單會出現「執行程式列或選擇項」或「執行全部」兩個新選項,這時我們可以決定選取某幾行程式或全部執行。


圖14 執行R程式

又如果我們想寫一些常用的自訂函數,例如計算BMI(Body Mass Index),即體重除以身高公尺的平方。並將下列幾行程式存在myfun.R程式檔。
mybmi<-function(h,w)
{
 bmi=w/(h/100)^2
 return(bmi)
}
若是想叫用時則從「檔案」選單的「輸入R程式碼」選項,直接載入執行即可。


圖15 載入R程式

下例則是叫用儲存在myfun.R程式(已經用source函數載入)的mybmi函數


圖16 使用自訂函數

四. 使用R作簡易的資料輸出入
以一個或多個空格隔開的文字資料檔則是R軟體最簡單的資料輸出入檔案格式。假設我們將學生實際的身高體重建成一個如下的文字資料檔:


圖17 文字資料檔範例

然後以read.table指令讀入此檔,放在資料框架變數mydata,資料框架變數的主要用途是用來儲存一個資料檔所有的變數和觀察值:
mydata=read.table("c:/r/input.txt",header=TRUE)
用source載入儲存在myfun.R程式的mybmi函數:
source("C:\\Documents and Settings\\stella\\桌面\\myfun.R")
接著叫用mybmi自訂函數,並傳入資料框架變數mydata中的身高和體重,傳回的結果值放入bmi變數:
bmi=mybmi(mydata["height"],mydata["weight"])
使用colnames設定向量變數的直行名稱,執行結果如下:
colnames(bmi)="BMI"


圖18 執行結果

最後將數個向量變數重組成資料框架變數,亦即將包含原框架變數的id、sex,和新計算出BMI變數的資料框架變數all寫入文字資料檔。


圖19 寫入文字資料檔


圖20 輸出後的文字檔

五. 紀錄R軟體執行的結果
如果我們想把R軟體的執行結果紀錄下來,則可使用sink函數,sink(“檔名”),先設定所要紀錄下來的檔名,最後再以sink()結束紀錄動作。舉例如下,我們先以read.table指令讀入資料檔,放在資料框架變數mydata:
mydata=read.table("c:/r/input.txt",header=TRUE)
再設定要紀錄結果的檔名:
sink("c:/R/sink.log")
接著計算身高和體重的基本敘述統計數值:
summary(mydata$height)
summary(mydata$height)
假使我們想把身高當作被解釋變數,體重當作解釋變數,可利用lm函數(LineaRModel)作一簡單線性迴歸分析:
summary(lm(mydata$height~ mydata$weight))
最後以sink()結束紀錄動作。
sink()


圖21 紀錄執行的結果