3 快速入門
跟 R 語言互動的方式有兩種:直接在 R Console 輸入合理的 syntax 後按 enter 執行,就可以馬上得到 R 語言的回饋;或者將想要執行的 R Script 部分反白選取起來後,點選 RStudio 的 Run(或者 Mac 按下快捷鍵 cmd + enter,Windows 按下 ctrl + enter。)
3.1 使用 <- 賦值
我們首先得學習一個符號 <-
,它的作用是將符號右邊的值指派給符號左邊的物件,稱作賦值。舉例來說我們可以將 24 指派給一個叫做 lucky_number
的物件,當我們想知道 lucky_number
物件儲存的內容為何,可以在 R Console 中輸入 lucky_number
並按下 enter:
lucky_number <- 24
lucky_number
## [1] 24
在 RStudio 中,我們可以按 alt
與 -
幫我們生成 <-
符號。<-
符號跟其他程式語言的 =
符號功能是完全相同的。事實上在 R 語言中使用 =
符號來賦值也是完全沒問題,但是因為絕大多數的 R 語言使用者仍然習慣使用 <-
符號,我推薦您與我們一起使用 <-
符號。
3.2 使用 c() 函數
在上一個章節我們將 24 賦值給一個 lucky_number
物件,假如不只有一個幸運數字該怎麼做呢?我們可以賦值多個物件:
lucky_number_1 <- 24
lucky_number_2 <- 34
lucky_number_1
## [1] 24
lucky_number_2
## [1] 34
但是更推薦的做法是利用 c()
這個函數(c 意指是 combine)把多個幸運數字賦值在一個物件中,這個物件的型別就稱為向量,是 R 語言一個很常使用到的基本容器。
lucky_numbers <- c(24, 34)
lucky_numbers
## [1] 24 34
3.3 使用 ? or help() 查詢
試著在命令列輸入 ?c
或者 help(c)
,這兩個指令的作用相同,同樣都會在 RStudio 右下角的介面 Help 打開文件。
?c
help(c)
3.4 使用 # 做註解
在 #
符號後面接一個空格來編寫註解,註解存在的目的是用口語告訴別人,告訴以後的自己這段程式在做什麼事情。有時可在 #
符號後面搭配 -
或者 =
將程式碼的區塊切割得更有條理。
# 賦值多個物件 ---------------------------
lucky_number_1 <- 24 # 將 24 指派給 lucky_number_1 物件
lucky_number_2 <- 34 # 將 34 指派給 lucky_number_2 物件
lucky_number_1 # 印出 lucky_number_1
## [1] 24
lucky_number_2 # 印出 lucky_number_2
## [1] 34
# 利用 c() 函數 --------------------------
lucky_numbers <- c(24, 34) # 將 24 與 34 多個值指派給 lucky_numbers 物件
lucky_numbers # 印出 lucky_numbers
## [1] 24 34
3.5 R Console 可以使用的快捷鍵
- 按向上的箭頭與向下的箭頭可以顯示出先前執行過的程式
- 按
ctrl
與L
可以清除 R Console
3.6 宣告檔案的路徑
macOS 或者 Linux 作業系統的使用者可以跳過這個小節,僅有 windows 作業系統的使用者需要留意,在 windows 作業系統中路徑習慣使用正向斜線(Forward slash)\
來表示不同資料夾階層,像是:
C:\Users\user\MyDocuments\data.csv
但是在 R 語言中要指派上面這個 data.csv
的絕對路徑時,必須要將 \
全部換成 /
才能被正確辨識:
C:/Users/user/MyDocuments/data.csv
3.7 R Console 一直顯示 + 怎麼辦
R Console 之所以會出現 + 是因為它還在預期使用者要接著完成剩餘的程式碼,要排除這個障礙有兩種方法:一是將剩餘的程式碼繼續輸入執行,二是按 esc 離開這個執行的 session。
# 執行這段程式會出現 +
lucky_numbers <- c(24, 34
因為 R 語言預期還有一個右邊的小括號故出現 +,這時我們可以輸入 )
再按 enter;或者按 esc 之後再重新做一次賦值。
3.8 如何自訂函數
函數是 R 語言中最重要的觀念,同時也是 R 使用者在處理重複性任務時大力仰賴的助手。一個自訂函數的外觀架構:
function_name <- function(輸入1, 輸入2, ..., 輸入n, 參數1, 參數2, ..., 參數n){
# 呼叫函數後執行的程式
return(輸出)
}
首先要給函數取個名字(function_name
),告訴 R 語言這是一個函數的物件(function(...)
),接著在小括號中放入想好的輸入(inputs)與參數(parameters),然後在大括號內縮排撰寫我們主要的程式,最後把輸出結果放在 return()
函數裡面。
我們來實作第一個自訂函數 add(x, y)
,它的作用是將輸入的兩個數字 x 與 y 相加之後的結果回傳回來:
# 定義函數 add ---------------------------
add <- function(x, y) {
return(x + y)
}
定義好函數之後,接著就是呼叫函數並輸入適當的數字:
# 呼叫函數 add ---------------------------
add(8, 7)
## [1] 15
3.9 隨堂練習
自訂函數 get_bmi(height, weight)
,它的作用是將輸入的身高 height(cm) 與體重 weight(kg) 計算之後的 BMI 結果回傳回來,BMI 的計算公式為:
\[BMI = \frac{weight(kg)}{height(m)^2}\]
get_bmi <- function(height, weight) {
#...
}
get_bmi(172, 65)
## [1] 21.97134