ture

一、概論

課前準備及重要須知

先安裝直譯器 R 再安裝整合開發環境 RStudio

  1. 開發環境:直譯器R
  1. 開發環境:整合開發環境RStudio

啟動RStudio

整合開發環境RStudio介面

  1. 來源(Source):位於左上⾓,編寫程式的區塊

  2. 命令列(Console):位於左下⾓,執⾏程式且呈現輸出的區塊

  3. 環境與歷史:位於右上⾓,其中環境(Environment)會顯⽰出⽬前可以取⽤的值(Values)、資料(Data)與函數(Functions);歷史(History)會顯⽰在命令列執⾏過哪些指令

  4. 檔案、圖形、套件、查詢與預覽器:位於右下⾓,其中檔案(Files)會顯⽰ R 語⾔所在的⼯作⽬錄(Working Directory)、圖形(Plots)則能瀏覽覺化圖形、套件(Packages)可以觀察套件安裝與載⼊現況、查詢(Help)能夠檢視使⽤ 者查詢的⽂件以及預覽器(Viewer)是預覽網⾴的輸出結果

關於R語言

  1. R語言由紐西蘭奧克蘭⼤學的 Ross Ihaka 和 Robert Gentleman 所設計,是個開源的統計程式語⾔

  2. 常⽤於開發統計和資料分析軟體系統

  3. 近年在Hadley Wickham 與 RStudio 團隊所建構的應⽤套件以及⼤數據、資料科學與⼈⼯智慧的熱潮加持,廣受統計學家和資料科學家的熱愛

R語言特性

  1. R 以函數型編程(Functional Programming)與資料分析作為設計理念核⼼

  2. 所有的資料(⽂字、數值或邏輯等)都不是以純量(Scalar)形式存在,⽽是以向量(Vector)形式存在

  3. 這樣的設計理念使得元素級別運算(element-wise operation)對R語⾔使⽤者⽽⾔是理所當然的

R程式設計基礎

  1. 學習 R 語⾔的第⼀步是認識賦值的符號 <-,它的作⽤是將其右邊的值指派給符號左邊的物件

  2. 在 RStudio 中,我們可以按 alt 與 - 幫我們⽣成 <- 符號

  3. <- 符號跟其他程式語⾔的 = 符號功能是完全相同的

為物件命名的時候,請遵守三個R語言使⽤者的寫作⾵格

  1. 使⽤全⼩寫英⽂,不同單字之間以底線 _ 相隔

  2. 使⽤英⽂名詞為值(Values)和資料(Data)命名、使⽤英⽂動詞為函數(Functions)命名,讓名稱簡潔且具有意義

  3. 避免使⽤保留字與內建函數作為物件的命名

# 好的 R 物件命名
taiwan_number_one <- TRUE
taiwan_number_1 <- TRUE
taiwanNumberOne <- TRUE

# 不好的 R 物件命名
Taiwan_Number_One <- TRUE
TaiwanNumberOne <- TRUE
twno1 <- TRUE

# 更多不好的 R 物件命名
T <- FALSE                 # T 是保留字 TRUE
c <- 10                    # c() 為內建函數
mean <- function(x) {      # mean() 為內建函數
return(-x)
## Error: <text>:16:0: unexpected end of input
## 14: mean <- function(x) {      # mean() 為內建函數
## 15: return(-x)
##    ^

簡單常見的R內建函數

# 呼叫 print() 函數或物件名稱可以將物件內容輸出在 Console

hello_msg <- "Hello R!"
print(hello_msg)
## [1] "Hello R!"
hello_msg
## [1] "Hello R!"
# 呼叫rm() 函數將完成賦值的物件自環境中刪除,rm是remove 的縮寫

rm(hello_msg)
print(hello_msg)
## Error in print(hello_msg): 找不到物件 'hello_msg'
# 呼叫help() 函數查詢資料以及函數 的說明⽂件

help(iris)  # 查詢資料,也可以使用 ?iris
## starting httpd help server ... done
help(print) # 查詢函數,也可以使用 ?print

# 呼叫sessionInfo() 顯示R語言版本與相關資訊
sessionInfo()
## R version 4.0.3 (2020-10-10)
## Platform: x86_64-w64-mingw32/x64 (64-bit)
## Running under: Windows 10 x64 (build 18363)
## 
## Matrix products: default
## 
## locale:
## [1] LC_COLLATE=Chinese (Traditional)_Taiwan.950 
## [2] LC_CTYPE=Chinese (Traditional)_Taiwan.950   
## [3] LC_MONETARY=Chinese (Traditional)_Taiwan.950
## [4] LC_NUMERIC=C                                
## [5] LC_TIME=Chinese (Traditional)_Taiwan.950    
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## 
## loaded via a namespace (and not attached):
##  [1] compiler_4.0.3  magrittr_2.0.1  tools_4.0.3     htmltools_0.5.0
##  [5] yaml_2.2.1      stringi_1.5.3   rmarkdown_2.6   knitr_1.30     
##  [9] stringr_1.4.0   xfun_0.19       digest_0.6.27   rlang_0.4.9    
## [13] evaluate_0.14
# 呼叫Sys.getlocale() 顯示R語言的地區以及語言資訊
Sys.getlocale()
## [1] "LC_COLLATE=Chinese (Traditional)_Taiwan.950;LC_CTYPE=Chinese (Traditional)_Taiwan.950;LC_MONETARY=Chinese (Traditional)_Taiwan.950;LC_NUMERIC=C;LC_TIME=Chinese (Traditional)_Taiwan.950"

設定工作目錄

# 呼叫getwd() 顯示R 語⾔的⼯作⽬錄,wd 為working directory 的縮寫
getwd()

# 呼叫setwd() 設定R 語⾔的⼯作⽬錄
# 此處 Windows 使⽤者要特別注意路徑斜線要使⽤ / 正斜線(⽽⾮ Windows 作業系統使⽤的 \ 反斜線),並且避免在路徑設定上出現空格與⾮英⽂的⽂字
setwd("/Users/YOURUSERNAME/Desktop")    #將 MacOS桌⾯設為⼯作⽬錄

setwd("C:/Users/YOURUSERNAME/Desktop") #將Windows 桌⾯設為⼯作⽬錄

R Console ⼀直出現+的故障排除

R 語⾔的 Console在預期使⽤者未完成輸⼊的時候會持續出現 + 提⽰尚有指令需要輸⼊,常⾒的情景像是應該成對出現的雙引號、⼩括號、中括號與⼤括號,卻並沒有輸⼊完整

# 遺漏右邊的雙引號
my_fav_pg <- "Steve Nash

# 遺漏右邊的小括號
print("Steve Nash"

# 遺漏右邊的中括號
iris[1, 1

# 遺漏右邊的大括號
say_hello <- function(){
  return("Hello R!")
  
## Error: <text>:5:8: unexpected symbol
## 4: # 遺漏右邊的小括號
## 5: print("Steve
##           ^

我們有兩種⽅式排除這個故障

  1. 在+之後完成遺漏的輸⼊

  2. 在Console 按Esc 鍵離開,重新來過

補充

參考劉正山(2018) ch3

完成R與RStudio的安裝之後

  1. 開啟新專案
  • 請從目錄選單中點選「File」→「NewProject」。在接下來彈出的視窗中點選「NewDirectory」→「New Project」。接下來,為專案取個英文名字,例如「My FirstProject」。日後只要點選它,就會開啟整個專案。若有多個專案,那麼RStudio Files窗格會隨著你切換專案,顯示不同專案所對應的資料夾。
  1. 複製本書的資料檔到自己的工作資料夾中
  1. 開設第一個R語法檔
  • R是個物件導向的(object-oriented)統計程式語言。最好能以語法檔案的方式,來管理我們的工作。目的:一、保存分析的軌跡;二、可以供自己和他人重製研究的發現 ;三、可流傳與分享
  1. 每周上課後要繳交上課操作R Markdown檔案
  • (a) 每次上課文件開頭要註明周次、任務、姓名、時間;課程結束輸出時,按下右上角筆記本樣式,選擇HTML檔

  • (b) 選擇Rpub(第一次請註冊帳戶)

  • (c) 於title及description填入「周次,如w1」、slug自訂連結請填入「學號,如fhkd105001」

  • (d) 繳交作業時,請複製網站連結至line記事本(請班長每週開上課作業的記事本)

套件的安裝、更新、掛載與移除

  1. 用install.packages0來安裝套件
  • 安裝套件的指令是install.packages(),而串聯(contatenate) 不同字串的指令是c()。套件名稱是字串,因此每個套件名稱要加上""。

  • 另一種方法是點選右下方窗格中的Packages,選擇Install,手動輸入套件名稱

install.packages(c("cars", "sjPolt", "sjmisc"))
  1. 更新R以及RStudio,用update.packages()來更新套件
  • R的更新頻率約是一個月進行一次小升級,RStudio的更新頻率約為三個月一次小升級,九個月一次大升級。因此若你過一段時間後有需要再使用R及RStudio,就必須先完成這兩個軟體的更新,參考 https://blog.csdn.net/dnhb_lw/article/details/78701478。好了之後再來進行套件更新。
install.packages("installr")
require(installr)
updateR()
update.packages (ask=FALSE)
  1. 用library(掛載套件)
  • 下載安裝之後的套件若不呼叫或掛載是不會作用的。若只需要使用某套件中的指令一次,可以直接用套件:指令的方法呼叫;或是用library()來加掛套件
install.packages("sjmisc")
# 方法一
sjmisc::frq(iris$Sepal.Length)

# 方法二
library(sjmisc)
frq(iris$Sepal.Length)

# Iris dataset 是一個古典的花朵資料集,由英國統計學家 Ronald Fisher 爵士在1936年時,對加斯帕半島上的鳶尾屬花朵所提取的花瓣花萼的長寬數據資料,依照山鳶尾,變色鳶尾,維吉尼亞鳶尾三類進行標示,共150筆資料。
# Iris dataset 中包含四種屬性 (Atrributes) 與三種花卉標籤 (Labels)
# Sepal length: 花萼長度 (cm)
# Sepal width: 花萼寬度 (cm)
# Petal length: 花瓣長度 (cm)
# Petal width: 花瓣寬度 (cm)
# setosa: 山鳶尾
# versicolor: 變色鳶尾
# virginica: 維吉尼亞鳶尾
  1. 用remove.packages()移除套件
  • 移除特定套件,無法使用rstudio的Packages視窗框,則需要用指令的方式進行。
remove.package("package0")#移除一個套件
> remove .package(c("package1","package2", "pacakge3")) #移除多個套件