5.R中的数据结构(矩阵)
一、数据结构回顾
R中用于存储数据的形式即数据结构,包括向量(vector,文档4中已介绍);矩阵(matrix)、数组;数据框(dataframe)和列表(list) (记住各数据结构的英文,后面要用。数组了解概念就行)。
——本节详细内容可参考Robert I. Kabacoff《R语言实战(第2版) 》
二、数据结构
1矩阵 (matrix)
矩阵是存储数值型、字符型或逻辑性数据的二维数组。
#数组(array)与矩阵类似,但是维度可以大于2。
矩阵创建函数为:matrix()
特点:和向量相似,矩阵中只能包含一种数据类型。
matrix()函数格式如下:
myymatrix<- matrix(vector, nrow=number_of_rows, ncol=number_of_columns,
byrow=logical_value, dimnames=list(char_vector_rownames, char_vector_colnames))
解释:
myymatrix矩阵名字<-matrix(vector需要纳入的元素,nrow行数目=number_of_rows多少行,ncol列数目=number_of_columns多少列,byrow按行填充=logical_value是/否(默认的是F,按列),dimnames展示行列名=list(char_vector_rownames字符型向量为行名,char_vector_colnames字符型向量为列名))
举例:
y <- matrix(1:20,nrow = 4,ncol=5)#创建一个4行5列的矩阵y
#注意矩阵元素的个数是行数、列数的整数倍,不是整数倍报告警告
#矩阵元素个数大于或小于 行*列,按照原规则填充,多了的不填充
#少的部分继续从头填充,具体可见下面z、y、w结果
y
x <- matrix(1:20,nrow = 3,ncol=5)
x
z <- matrix(1:20,nrow = 5,ncol=6)
z
w <- matrix(1:17,nrow = 4,ncol=5)
w
cell<-c(1,2,4,6)
a<-c("R1","R2")
b<-c("C1", "C2")
m<-matrix(cell,nrow=2,ncol=2,byrow=F,dimnames=list(a,b))
m
n<-matrix(cell,nrow=2,ncol=2,byrow=T,dimnames=list(a,b))
n
2 矩阵中元素的引用 (即元素的提取)
使用中括号引用元素[]+下标 #R中下标最小为1
x[i,j] #x是矩阵名称,i表示第i行,j表示第j列,合在一起就是提取第i行第j列的元素;
x[i,] #提取第i行
x[,j] #提取第j列
#当i或j为数值型向量时,则表示多行多列
举例:
x<- matrix(1:10, nrow=2)
x
x[2, ]
x[,2]
x[1,4]
x[1, c(4,5)]
3 判断数据是否为矩阵
is.matrix()函数 #返回逻辑值
举例:
a<-matrix(c(1:12),nrow=3,ncol=4) #创建一个3行4列的矩阵a
is.vector(a) #判断a是向量吗?是就会返回TRUE,不是返回FALSE
is.matrix(a)#判断a是矩阵吗?