1. R 與 RStudio介面


1.1 介面簡介


Workspace (左上角)

主要是用來撰寫程式碼,大多以Script呈現。


Console (左下角)

用來執行程式碼的地方,在 Workspace 選取欲執行的程式碼,按下Run或ctrl+enter。

也可以直接在此介面執行程式碼。

EX 1+1


Environment、History (右上角)

Environment:是用來記載目前變數的數值,方便查看目前變數的狀況。

History:是所有在 Consloe 執行過程式碼的歷史記錄。

EX a<-1+1


Files、Plots、Packages、Help、Viewer (右下角)

Files:目前所在的工作環境是在哪個位置。

Plots:顯示圖表。

Package:記錄目前已安裝的。Package,打勾代表已經載入,安裝 Package 請點選「Install」。


1.2 調整介面

RStudio -> Tools -> Global Options -> Appearance

選擇自己舒適的模式。


2. 基本操作


2.1 常見的資料型態


數值 numeric

利用 class 查詢數字的資料型態

class(1)
## [1] "numeric"

數值也可以直接用運算

#加減乘除
12+10
## [1] 22
12-10
## [1] 2
12*10
## [1] 120
12/10
## [1] 1.2
#餘數
12%%10
## [1] 2
#次方
12^3
## [1] 1728


字串 character

class("a")
## [1] "character"


布林變數 logic

class(TRUE)
## [1] "logical"


2.2 賦值

# = 或 <- 都可以,但通常以 <- 為主
a<-2
a
## [1] 2


2.3 Help

help(class)
## starting httpd help server ... done
?class


2.4 邏輯運算

# 大於 >,小於 <,等於 ==,大於等於 >=,小於等於 <=
2>1
## [1] TRUE
a<-2
b<-1
a<b
## [1] FALSE


3.資料結構


3.1 向量 vector

向量為一維資料的表現和儲存方式,用c()函數可定義向量,裡面為元素(element)。

a1<-c(1,1,2,3,4)
a1
## [1] 1 1 2 3 4
a2<-c("a","b","c")
a2
## [1] "a" "b" "c"
#只能存在一種資料型態
a3<-c("a","b",1)
a3
## [1] "a" "b" "1"


利用 [] 選取想要的元素

a1[4]
## [1] 3


利用 賦值 替換原本的 或是 增加新的

a1[7]
## [1] NA
a1[7]<-10
a1
## [1]  1  1  2  3  4 NA 10


一次產生大向量

# :
a4<-c(1:10)
a4
##  [1]  1  2  3  4  5  6  7  8  9 10
# seq
a5<-seq(from=1,to=20,by=2)
a5
##  [1]  1  3  5  7  9 11 13 15 17 19
# rep
a6<-rep(x = c(1,2,3),time=3)
a6
## [1] 1 2 3 1 2 3 1 2 3
a6<-rep(x = c(1,2,3),each=3)
a6
## [1] 1 1 1 2 2 2 3 3 3


向量運算

a4+a5
##  [1]  2  5  8 11 14 17 20 23 26 29
a1<-c(1:5)
a4/a1
##  [1] 1.000000 1.000000 1.000000 1.000000 1.000000 6.000000 3.500000
##  [8] 2.666667 2.250000 2.000000


3.2 列表 list

list中的元素可以同時包括數值、字串、列表、資料集等。


以 list() 呈現

l1<-list(students=c(1,2,3),hight=c(4,5,6))
l1
## $students
## [1] 1 2 3
## 
## $hight
## [1] 4 5 6


以 $ or [] 選取資料

l1$students
## [1] 1 2 3
l1[[1]][2]
## [1] 2


3.3 矩陣 matrix

二維,以 matrix() 呈現

生成矩陣

matrix(data = c(1,2,3,4,5,6),nrow = 2,ncol = 3)
##      [,1] [,2] [,3]
## [1,]    1    3    5
## [2,]    2    4    6
matrix(data = c(1,2,3,4,5,6),nrow = 2,ncol = 3,byrow = T)
##      [,1] [,2] [,3]
## [1,]    1    2    3
## [2,]    4    5    6
matrix(nrow = 2,ncol = 3,data = 1)
##      [,1] [,2] [,3]
## [1,]    1    1    1
## [2,]    1    1    1


選取資料

m1<-matrix(data = c(1,2,3,4,5,6),nrow = 2,ncol = 3)
m1[2,3]
## [1] 6


3.3 資料集 data.frame

由一系列的欄位(Column)和列(Row)所組成,以 data.frame() 呈現,與Excel很像。

df1<-data.frame(student=c("a","b","c"),
                gender=c("F","M","F"),
                hight=c(160,178,155),
                stringsAsFactors = F)
df1
##   student gender hight
## 1       a      F   160
## 2       b      M   178
## 3       c      F   155


新增欄位

df1$weight<-c(50,70,52)
df1
##   student gender hight weight
## 1       a      F   160     50
## 2       b      M   178     70
## 3       c      F   155     52