一、向量部分
R语言基础入门(学习笔记通俗易懂版)_r语言 csdn_CYH-BI的博客-CSDN博客
二、矩阵部分
1.创建矩阵格式:
①直接创建法
matric()
> mydata<-matrix(c(1,2,3,4,5,6),nrow=2,ncol=3) #两行三列,默认按列排
> mydata
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
> mydata1<-matrix(c(1,2,3,4,5,6),nrow=2,ncol=3,byrow=T) #两行三列,按行排
> mydata1
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 4 5 6
> mydata3<—matrix(c(1,2,3,4,5,6),nrow=2,ncol=3,dimnames=list(c("r1","r2"),c("c1","c2","c3")))
> mydata3 #设置了名字,名字要用列表list形式,如上一行代码
c1 c2 c3
r1 1 3 5
r2 2 4 6
对行列命名的另外一种方法:
m=matrix(c(1,2,3,4,5,6,7,8,9),3,3)
colnames(m) = c("数学", "语文", "英语")
rownames(m) = c("小学","高中", "初中")
②向量拼接法
横向量拼接和纵向量拼接
rbind和cbind
> mydata5<-rbind(c(1,2,3),c(4,5,6)) #按行将两个向量接起来,形成矩阵
> mydata5
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 4 5 6
> mydata6<-cbind(c(1,2,3),c(4,5,6)) #按列将两个向量接起来,形成矩阵
> mydata6
[,1] [,2]
[1,] 1 4
[2,] 2 5
[3,] 3 6
③强制转换为矩阵
利用as.matrix()
函数强制转换为矩阵,如:
> a<-c(1,2,3,4,5,6,7,8)
> a1<-as.matrix(a) #强制转换为矩阵,但是只有一列
> a1
[,1]
[1,] 1
[2,] 2
[3,] 3
[4,] 4
[5,] 5
[6,] 6
[7,] 7
[8,] 8
④建立一个空矩阵
直接写行列大小,如下:
> d<-matrix(nrow=3,ncol=2) #建立一个3行2列的空矩阵,内容为NA,存在但未知
> d
[,1] [,2]
[1,] NA NA
[2,] NA NA
[3,] NA NA
注意事项:
当两个向量长度不相等时,会出现警告,长度不等的那个向量会用循环补齐的形式填补
当向量中含有不同类型的数据时,会改变元素类型后转变为矩阵
2、矩阵的索引
mymartix[i,],返回矩阵mymatrix中第i
行元素
mymartix[,j],返回矩阵mymatrix中第j列元素
mymartix[i,j],返回矩阵mymatrix中第i
行j列元素
mymatrix[i,-j],返回第i
行,但排除第j
列元素
mymatrix[c(m,n),c(p,k)],返回第m和n行,第p和k列元素
mymatrix[-c(m,n),c(p,k)],返回第p和k列,但排除第m和n行元素
当矩阵有行列名时,可以通过行与列名进行提取元素
> mymatrix3 #这里有一个矩阵
c1 c2 c3 c4 c5 行均值
r1 1 6 11 16 21 11
r2 2 7 12 17 22 12
r3 3 8 13 18 23 13
r4 4 9 14 19 24 14
r5 5 10 15 20 25 15
列均值 3 8 13 18 23 NA
> mymatrix3["r1","c2"] #返回列名c2,行名为r1的元素
[1] 6
> mymatrix3[c("r2","r4"),c("c3","c5")] #返回行名为r2与r4,列名为c3与c5的元素
c3 c5
r2 12 22
r4 14 24
3.矩阵相关操作
①转置,函数t()
②横向或纵向合并矩阵
cbind()
函数横向合并矩阵
rbind()
函数纵向合并矩阵
> M<-matrix(c(1,2,3,4),2,2)
> N<-matrix(c(5,6,7,8),2,2) #建立了两个矩阵M,N,如下
> M
[,1] [,2]
[1,] 1 3
[2,] 2 4
> N
[,1] [,2]
[1,] 5 7
[2,] 6 8
> cbind(M,N) #横向合并矩阵M,N
[,1] [,2] [,3] [,4]
[1,] 1 3 5 7
[2,] 2 4 6 8
> rbind(M,N) #纵向合并矩阵M,N
[,1] [,2]
[1,] 1 3
[2,] 2 4
[3,] 5 7
[4,] 6 8
③维度信息
维度信息,返回行列数目
dim(m2)
nrow(m2)
ncol(m2)
④对各列或行求和或求均值
colSums()
对各列求和,rowSums()
对各行求和
colMeans()
对各列求均值,rowMeans()
对各行求均值,举例如下:
> mymatrix #以这个矩阵举例
[,1] [,2] [,3] [,4] [,5]
[1,] 1 6 11 16 21
[2,] 2 7 12 17 22
[3,] 3 8 13 18 23
[4,] 4 9 14 19 24
[5,] 5 10 15 20 25
> colSums(mymatrix) #对各列求和
[1] 15 40 65 90 115
> rowSums(mymatrix) #对各行求和
[1] 55 60 65 70 75
> colMeans(mymatrix) #对各列求均值
[1] 3 8 13 18 23
> rowMeans(mymatrix) #对各行求均值
[1] 11 12 13 14 15
⑤计算行列式
det()
函数
⑥矩阵相乘
使用%*%
进行矩阵相乘
> M
[,1] [,2]
[1,] 1 3
[2,] 2 4
> N
[,1] [,2]
[1,] 5 7
[2,] 6 8
> K<-M%*%N #两矩阵相乘
> K
[,1] [,2]
[1,] 23 31
[2,] 34 46
⑦设置行列名
- 在创建矩阵时设置行列名,如
-
> #使用dimnames,以列表的形式设置行列名 > fa<-matrix(c(2,3,4,5),2,2,dimnames =list(c("第一行","第二行"),c("第一列","第二列"))) > fa 第一列 第二列 第一行 2 4 第二行 3 5
- 在外部使用
dimnames()
函数设置行列名 -
> fa1<-matrix(c(6,7,8,9),2,2) #矩阵原先未设置行列名 > a<-c("第一行","第二行") > b<-c("第一列","第二列") > dimnames(fa1)<-list(a,b) #使用dimnames函数设置行列名 > fa1 第一列 第二列 第一行 6 8 第二行 7 9
- 使用函数
rownames()
设置行名,使用colnames()
设置列名 -
> fa2<-matrix(c(1,3,5,7),2,2) #行列未命名的矩阵 > rownames(fa2)<-c("A1","A2") #对行命名 > colnames(fa2)<-c("B1","B2") #对列命名 > fa2 B1 B2 A1 1 5 A2 3 7
4.apply()函数
apply(m,dimcode,f,fargs) 允许用户在各行各列调用函数
m 矩阵,dimcode 1代表行, 2代表列,f函数,frags可选参数,函数大于一个参考时使用用“,”隔开。文章来源:https://www.toymoban.com/news/detail-758505.html
5.判断对象是不是矩阵
is.matrix()文章来源地址https://www.toymoban.com/news/detail-758505.html
到了这里,关于R语言(一)向量与矩阵的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!