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形式返回的