目录
数据类型
数据结构
-
向量
- 用于存储数值型、字符型或逻辑型数据的一维数组
- 单个向量中数据必须拥有相同的类型或者模式(数值型、字符型或逻辑型)
- 创建向量
# c()创建向量 x <- c(10,11,13,14) # : 创建向量 x <- 1:10 # seq(from, to, by, length.out, along.with) # seq(from, to, by, length, along) # 从5开始,间隔为2,长度为8 x <- seq(5, by=2, length=8) # 从10开始,间隔为3,长度与x相同(8) y <- seq(10, by=3, along= x)
- 提取子集
> a <- c(1,2,5,3,6,-2,4) [1] 1 2 5 3 6 -2 4 > a[3] [1] 5 > a[c(1,3,5)] [1] 1 5 6 > a[2:6] [1] 2 5 3 6 -2
-
矩阵
- 二维数组,每个元素都拥有相同的模式(数值型、字符型或逻辑型)
- 创建矩阵matrix
mymatrix <- matrix(vector, nrow=num, ncol=num, byrow=TRUE/FALSE, dimnames=list(rnames,cnames))
# 创建一个5X4的矩阵 > y <- matrix(1:20, nrow=5, ncol=4) > y [,1] [,2] [,3] [,4] [1,] 1 6 11 16 [2,] 2 7 12 17 [3,] 3 8 13 18 [4,] 4 9 14 19 [5,] 5 10 15 20 > cells <- c(1,26,24,68) > rnames <- c("R1","R2") > cnames <- c("C1","C2") # 按行填充的2X2矩阵 > mymatrix <- matrix(cells, nrow=2, ncol=2, byrow=TRUE, dimnames=list(rnames,cnames)) > mymatrix C1 C2 R1 1 26 R2 24 68 # 按列填充的2X2矩阵 > mymatrix <- matrix(cells, nrow=2, ncol=2, byrow=FALSE, dimnames=list(rnames,cnames)) > mymatrix C1 C2 R1 1 24 R2 26 68
- 提取子集
> x <- matrix(1:10, nrow=2) > x [,1] [,2] [,3] [,4] [,5] [1,] 1 3 5 7 9 [2,] 2 4 6 8 10 # 0是indexs和columns > x[0,] [,1] [,2] [,3] [,4] [,5] > x[,0] [1,] [2,] # 所以提取值的序列是1开始 > x[2,] [1] 2 4 6 8 10 > x[,2] [1] 3 4 > x[1,c(2,3)] [1] 3 5
- 数组
- 数组与矩阵类似,但维度可以大于2(同样:每个元素都拥有相同的模式)
- 创建数据:myarray <- array(vector, dimensions, dimnames)
- vector:数组中的数据(相同模式)
- dimensions:一个数值型向量,给出各个维度下标的最大值
- dimnames:可选,各维度名称标签的列表
> dim1 <- c("A1","A2","A3","A4") > dim2 <- c("B1","B2","B3") > dim3 <- c("C1","C2") #创建三维数组 > z <- array(1:24, c(4,3,2), dimnames=list(dim1,dim2,dim3)) > z , , C1 B1 B2 B3 A1 1 5 9 A2 2 6 10 A3 3 7 11 A4 4 8 12 , , C2 B1 B2 B3 A1 13 17 21 A2 14 18 22 A3 15 19 23 A4 16 20 24
- 提取子集:与矩阵相同
-
数据框
- 包含不同模式(数值型、字符型等)的数据,最常规(有用)的表格
- 创建数据框:mydata <- data.frame(col1,col2,col3,...)
> patientID <- c(1,2,3,4) > age <- c(25,34,28,52) > diabetes <- c("Type1","Type2","Type3","Type4") > status <- c("Poor","Improved","Excellent","Poor") > patientdata <- data.frame(patientID, age, diabetes, status) > patientdata patientID age diabetes status 1 1 25 Type1 Poor 2 2 34 Type2 Improved 3 3 28 Type3 Excellent 4 4 52 Type4 Poor
- 提取子集
列表
- 因子