1 向量

1.1 定義向量

向量使用c來賦值,向量中不能混合不同型別的資料

x<-c(2,3,7,6,8)  數值型num

y<-("one","two","three")  字元型chr

z<-c(TRUE,TRUE,FALSE)  邏輯型logi

檢視變數的型別:class(x)

1.2 訪問向量

訪問中的元素,使用中括號(R語言區分大小寫),R語言索引從1開始

訪問第二個元素:x[2]

訪問第1和第3個元素:x[c(1,3)]

訪問第1都第3的元素:x[c(1:3)] 或者x[1:3]

2 矩陣

2.1 定義矩陣

矩陣是二維的,矩陣中的資料型別不能混合

矩陣建立使用matrx():

x<-matrix(1:20,nrow=5,ncol=4)

解釋 : 1:20定義了矩陣中的資料是1到20,規定了5行4列,預設情況下矩陣按列填充

新增一個欄位byrow=T,是否按行填充,設定為TRUE或者T :

x1<-matrix(1:20,nrow=5,ncol=4,byrow=T)

2.2 矩陣的索引

獲取第1行:x1[1,]

獲取第3列:x1[,3]

獲取第3行第4列:x1[3,4]

獲取第3行第1,2列:x1[3,c(1,2)]

3 陣列

3.1 定義陣列

陣列可以是二維,三維,使用array建立,定義2行3列的4張表

定義變數:

d1<-c("m1","m2")

d2<-c("n2","n2","n3")

d3<-c("p1","p2","p3","p4")

使用array組合成陣列:

x2<-array(1:24,c(2,3,4),dimnames = list(d1,d2,d3))

解釋: 1:24用來個建立的陣列填充資料,c(2,3,4)用來確定陣列的維度,dimnames用來給建立的陣列取名字(以下是部分截圖)

4 資料框

4.1 定義資料框

資料框可以混合不同型別的資料

首先定義幾個變數:

patientID<-c(1,2,3,4)

age<-c(26,30,27,48)

diabetes<-c("type1","type2","type1","type2")

status<-c("poor","improved","excellent","poor")

使用data.frame構成資料框:

pt<-data.frame(patientID,age,diabetes,status)

4.2 訪問資料框

訪問資料框用中括號,訪問第1和第2列:p1<-pt[1:2]

使用列名,訪問某列:p2<-pt[c("age","status")]

4.3頻數表和交叉表

頻數分析:table(pt$status)

交叉分析:table(pt$diabetes,pt$status)

4.4變數搜尋路徑指定

(1)用attach將表新增到搜尋路徑(為了避免每次都要寫$):attach(pt)

不需要這個表用detach,語句是:detach(pt)

(2)不想每次寫表名,還可以使用with:

with(mtcars,{

+ plot(mpg,disp)

+ plot(mpg,wt)

+ })

在實際應用中建議把表名寫清楚,不建議這樣做

5 因子factor

5.1名義型變數

diabetes<-c("type1","type2","type1","type2")

diabetes1<-factor(diabetes)

5.2 有序型變數order,值順序指定level

status<-c("poor","improved","excellent","poor")

status1<-factor(status,ordered = T,levels = c("poor","improved","excellent"))

5.3 案例(作業)

有因子變數在表中:

patientID<-c(1,2,3,4)

age<-c(26,30,27,48)

diabetes<-c("type1","type2","type1","type2")

status<-c("poor","improved","excellent","poor")

diabetes1<-factor(diabetes)

status1<-factor(status,ordered = T,levels = c("poor","improved","excellent"))

Pt1<-data.frame(patientID,age,diabetes1,status1)

分析這個表使用summary(pt1),patientID和age為數值型,所以計算了它們的最大最小均值等,diabetes1和status1為因子變數,所以統計了它們的屬性出現的次數。

 

6 列表list,可以混合以上各種資料

6.1 列表的定義

首先定義幾個變數:

x<-"aaaa"

y<-c(22,44,55)

z<-matrix(1:9,nrow=3)

k<-c("one","two","three")

list1<-list(x,y,z,k)

給列表中的元素賦值:list2<-list(var1=x,var2=y,var3=z,var4=k)

6.2 列表的訪問

用兩個中括號或者訪問名字

list2[[1]]

list2[["var1"]]

6.3 列表的用途

R語言的很多分析結果,都是以list形式返回的