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