我第一次知道 R 語言, 是在向市圖借的這本書上看到的 :
# 好書 : 大數據挖掘:從巨量資料發現別人看不到的秘密
以往不管是 EXCEL 或 SPSS, 都以提供方便的圖形操作介面著稱; R 與傳統的統計套裝軟體不同的是, 它是以命令列指令為主, 不論是數據處理, 統計分析, 還是輸出圖形, 都是在命令列呼叫函數來處理. 雖然學習曲線較陡, 但是應用較廣較靈活, 而且有許多統計套件 (package) 可下載增強功能, 是學習統計學的完美工具. 參考 :
# 官網 : http://www.r-project.org
# 維基 : R 語言
關於 R 語言的背景知識摘要如下 :
- R 是開放原始碼的跨平台自由軟體
- 由紐西蘭奧克蘭大學統計系教授 Ross Ihaka 與 Robert Gentleman 開發
- 源自 John Chambers 在貝爾實驗室所發展的統計語言 S 語言
- 底層可使用 C, C++, Java, Python, Fortran 等語言實作
# Download R for Windows
點選安裝檔 R-3.2.2-win.exe, 按滑鼠右鍵選擇 "以系統管理員身分執行" :
R 有多國語言安裝, 會自動依作業系統挑選繁體中文 :
但要注意, 選擇目的資料夾時, 請將預設的 C:\Program Files\R\R-3.2.2 改為 C:\R\R-3.2.2, 因為預設目錄的 Program 與 Files 中間有一個空格, 這在以後安裝其他套件時可能會有問題, 只要沒空格, 其他路徑也是可以的 :
這裡請依據電腦作業系統勾選, 我是 XP 32 位元, 所以只選 Core 與 32-bit Files 即可; 若作業系統是 64 位元, 那 32-bit Files 就不必選. 另外 Message Translations 也請勾選 :
安裝完畢大約是 104MB, 點桌面或程式集中的 R 即進入 R Console 控制台, 跟 Python/Lua 一樣是直譯器介面 :
R 控制台預設提示號為大於 > 符號, 可以用內建函數 options(prompt="提示號") 修改, 例如 :
> options(prompt="R>")
R>options(prompt=">") #提示號改成 R>l 了
>
呼叫 options() 不傳入參數會顯示所有的工作環境選項設定, 如上傳入指定參數則可更改預設值. R 為解譯式語言, R 程式為逐行執行不須編譯, R Console 為互動式介面, 中執行 R 程式,
執行 R 程式有兩種模式 :
1. 互動模式 (interactive) :
即直接在 R 控制台輸入 R, 每輸入一列解譯器就執行一列, 按 Enter 時若敘述不完整, 會跳到下一列並在開頭顯示 "+" 表示需繼續輸入直到敘述完整為止才會進行解譯.
即把多個 R 敘述寫在一個以 .R 或 .r 為副檔名的檔案裡.
這樣就可以透過 R 控制台的對解譯器下達 R 的指令 (即呼叫函式) 了, 這種操作方式稱為互動模式 (), 例如計算 2 的平方根, 顯示內建常數 pi, 進行四則運算等 :
> sqrt(2)
[1] 1.414214
> pi
[1] 3.141593
>
> 1+1
[1] 2
>
R Console 提供了如下快捷鍵來使加速程式輸入與編輯 :
如果 R 指令執行後想要中斷執行, 只要按下 ESC 鍵即可. 點按 R Console 或右上角的 X 可關閉程式, 此時會彈出視窗, 詢問是否要儲存工作空間 (Work space) :
這是儲存程式啟動以來所有變數與計算結果的記憶體區域, 按 "是" 會在目前工作目錄下產生一個 .RData 的檔案來記錄這些資料, 下一次開啟程式時這些資料都會從檔案重新載入記憶體, 故還能使用, 但這樣也會把上一次儲存的工作空間覆蓋掉. 故若還要保存上一次的工作空間資料的話, 就要按 "否" 捨棄這一次的.
R 語言提供完整的輔助文件, 隨程式安裝於本機中. 於控制台輸入 help.start() 便會開啟瀏覽器, 顯示內建網頁文件伺服器 127.0.0.1 下的首頁 :
其中, "Manual" 提供了詳細的簡介與教學, 而 "Reference" 下的 "Search Enging & Keywords" 則提供關鍵字檢索, 最為方便. "Pakages" 則會列出目前已安裝的套件.
也可以在 R Console 中輸入 help(函數名) 或 ?函數名 直接查詢函數的功能說明, 它會開啟瀏覽器, 直接顯示輔助文件網頁, 例如 :
> help(sqrt)
> ?sqrt
也可以用 help.search("關鍵字") 來查詢, 例如 :
> help.search("sqrt")
與上面一樣也會開啟搜尋到與 sqrt 有關的網頁. 注意, 關鍵字必須用雙引號括起來, 否則會出現錯誤. 線上文件目錄參考 :
# https://stat.ethz.ch/R-manual/R-devel/library/base/html/
如果忘記某函數有哪些參數, 可以在控制台直接以 args(函數名) 查詢, 例如 :
> args(sqrt)
function (x)
NULL
不管是在桌面執行 R 捷徑或在程式集中執行 R 程式, 都是開啟 R 的 GUI 版程式 Rgui.exe (人機互動版), 通常是 C:\R\R-3.2.2\bin\x64\Rgui.exe. 其實此目錄下還有一個 Rterm.exe, 這是給批次處理用的 R Console (非互動版) :
因為 R 語言的控制台像是一個陽春的終端機, 只能一行一行輸入指令, 因此 美國人 JJ Alaire 便開發了一個 RStudio 軟體來使 R 程式開發更方便, 它以專案 (Project) 的方式來管理 R 程式開發所用到的資料, 文件, 以及圖表等分析結果, 而且所提供的程式編輯器具有函數提示與自動完成功能.
RStudio 是商業軟體, 桌上型單機版每年 US$995, 伺服器型每年 US$9995 (可以讓使用者透過瀏覽器遠端執行 R 程式), 算是非常高貴的. 但是它也有 GPL 開源版本, 與收費版的差別是少了管理工具與安全性功能如 LDAP/SSL 支援等等. 注意, RStudio 無法單獨執行, 必須先安裝 R 語言.
> 1+1
[1] 2
>
R 的輸出結果是以向量來表示的, [1] 表示這是輸出向量的第一個元素, 若有兩個元素, 第二個元素前面就標示 [2].
R Console 提供了如下快捷鍵來使加速程式輸入與編輯 :
按鍵 | 快捷鍵 | 功能 |
上箭頭 | Ctrl+P | 向前選擇歷史指令 |
下箭頭 | Ctrl+N | 向後選擇歷史指令 |
Backspace | Ctrl+H | 刪除游標左方字元 |
Delete | Ctrl+D | 刪除游標右方字元 |
Home | Ctrl+A | 移動游標到指令開頭 |
End | Ctrl+E | 移動游標到指令尾端 |
右箭頭 | Ctrl+F | 游標向右移動一個字元 |
左箭頭 | Ctrl+B | 游標向左移動一個字元 |
Ctrl+K | 將游標後面的指令刪除 | |
Ctrl+U | 刪除整行指令 |
如果 R 指令執行後想要中斷執行, 只要按下 ESC 鍵即可. 點按 R Console 或右上角的 X 可關閉程式, 此時會彈出視窗, 詢問是否要儲存工作空間 (Work space) :
這是儲存程式啟動以來所有變數與計算結果的記憶體區域, 按 "是" 會在目前工作目錄下產生一個 .RData 的檔案來記錄這些資料, 下一次開啟程式時這些資料都會從檔案重新載入記憶體, 故還能使用, 但這樣也會把上一次儲存的工作空間覆蓋掉. 故若還要保存上一次的工作空間資料的話, 就要按 "否" 捨棄這一次的.
R 語言提供完整的輔助文件, 隨程式安裝於本機中. 於控制台輸入 help.start() 便會開啟瀏覽器, 顯示內建網頁文件伺服器 127.0.0.1 下的首頁 :
其中, "Manual" 提供了詳細的簡介與教學, 而 "Reference" 下的 "Search Enging & Keywords" 則提供關鍵字檢索, 最為方便. "Pakages" 則會列出目前已安裝的套件.
也可以在 R Console 中輸入 help(函數名) 或 ?函數名 直接查詢函數的功能說明, 它會開啟瀏覽器, 直接顯示輔助文件網頁, 例如 :
> help(sqrt)
> ?sqrt
也可以用 help.search("關鍵字") 來查詢, 例如 :
> help.search("sqrt")
與上面一樣也會開啟搜尋到與 sqrt 有關的網頁. 注意, 關鍵字必須用雙引號括起來, 否則會出現錯誤. 線上文件目錄參考 :
# https://stat.ethz.ch/R-manual/R-devel/library/base/html/
如果忘記某函數有哪些參數, 可以在控制台直接以 args(函數名) 查詢, 例如 :
> args(sqrt)
function (x)
NULL
這表示開方根函數 sqrt() 只有一個參數 x. 更厲害的是, 輸入 example(函數名), 不但會自動執行函數範例, 還會在右邊開啟視窗畫出函數圖形, 例如 :
> example(sqrt)
以下為 example 指令下完後自動執行的繪圖範例 :
sqrt> require(stats) # for spline
sqrt> require(graphics)
sqrt> xx <- -9:9
sqrt> plot(xx, sqrt(abs(xx)), col = "red")
等待頁面變更的確認…
sqrt> lines(spline(xx, sqrt(abs(xx)), n=101), col = "pink")
不管是在桌面執行 R 捷徑或在程式集中執行 R 程式, 都是開啟 R 的 GUI 版程式 Rgui.exe (人機互動版), 通常是 C:\R\R-3.2.2\bin\x64\Rgui.exe. 其實此目錄下還有一個 Rterm.exe, 這是給批次處理用的 R Console (非互動版) :
因為 R 語言的控制台像是一個陽春的終端機, 只能一行一行輸入指令, 因此 美國人 JJ Alaire 便開發了一個 RStudio 軟體來使 R 程式開發更方便, 它以專案 (Project) 的方式來管理 R 程式開發所用到的資料, 文件, 以及圖表等分析結果, 而且所提供的程式編輯器具有函數提示與自動完成功能.
RStudio 是商業軟體, 桌上型單機版每年 US$995, 伺服器型每年 US$9995 (可以讓使用者透過瀏覽器遠端執行 R 程式), 算是非常高貴的. 但是它也有 GPL 開源版本, 與收費版的差別是少了管理工具與安全性功能如 LDAP/SSL 支援等等. 注意, RStudio 無法單獨執行, 必須先安裝 R 語言.
建議下載 zip 檔免安裝版, 解壓縮後執行 bin 下的 rstudio.exe 即可 :
可知畫面左方就是 R Console 控制台, 它有指令提示與自動完成功能, 只要敲進函數的前面幾個字元, 就會跳出函數選單與說明, 非常方便. 右上方視窗是執行環境與歷史紀錄, 右下方則是工作空間 work space 與檔案路徑 :
我想, 初學者只要使用 R Console 就可以了, 等熟悉後再使用 RStudio 也不遲. 畢竟那是專案型態的 R 程式整合開發工具, 殺雞不需要用到牛刀.
參考 :
# R language簡介(上)
# R language簡介(下)
# Get Analytical with R
# R 語言基礎
# R語言 - 從「主觀感覺」轉為「客觀事實」
# R語言與機器學習見面會
2017-12-12 補充 :
R 語言也可以在 Raspberry Pi 上面跑, 安裝方法參考 :
# 在樹莓派上安裝 R 語言
# Raspberry Pi 筆記(45):安裝R語言及互動介面的 Shiny Server
沒有留言 :
張貼留言