R语言中的矩阵
一、矩阵的创建
在R语言中,对于矩阵的创建一般的方法有:
1.直接使用 matrix()函数进行创建
x<- matrix(1:4)
X
[,1]
[1,] 1
[2,] 2
[3,] 3
[4,] 4
对于上诉的矩阵还可以设置行、列
> x<- matrix(1:8,nrow = 2 ,ncol = 4,byrow = T) > x [,1] [,2] [,3] [,4] [1,] 1 2 3 4 [2,] 5 6 7 8 | ||
| ||
|
对于上诉问题:ncol 设置列的数目,nrow 为设置 行的数目 byrow是否设置为行优先。Byrow 是一个TRUE的类型并且区分大小写字母。
2.通过dim()方法将不是矩阵类型的数据进行转换为矩阵
> x<- 1:12
> dim(x)<- c(3,4)
> x
[,1] [,2] [,3] [,4]
[1,] 1 4 7 10
[2,] 2 5 8 11
[3,] 3 6 9 12
> is.matrix(x) [1] TRUE | |
判断是否为矩阵类型 | |
|
3.通过 rbind() 和 cbind()方法来创建
x1<-c(1,2,3,4)
x2<-c(2,3,4,5)
x3<-c(6,7,8,9)
cbind(x1,x2,x3)
rbind(x1,x2,x3)
得出的结果:
> cbind(x1,x2,x3)
x1 x2 x3
[1,] 1 2 6
[2,] 2 3 7
[3,] 3 4 8
[4,] 4 5 9
> rbind(x1,x2,x3)
[,1] [,2] [,3] [,4]
x1 1 2 3 4
x2 2 3 4 5
x3 6 7 8 9
二、获取矩阵中的元素
y<-matrix(rnorm(20),ncol = 4,nrow = 5)
y
y[1] #获取第一个元素
y[1,] #获取第一行元素
y[,1] #获取第一列元素
y[2,4] #获取指定的行列元素
y[c(1,3),c(2,4)] #获取第1,3行,第2,4列元素组成矩阵
y[2:5,] #获取2-5行的全部元素
y[-1,] #删除第一行元素,保留剩下的全部元素
得出的结果:
> y<-matrix(rnorm(20),ncol = 4,nrow = 5)
> y
[,1] [,2] [,3] [,4]
[1,] 0.7288271 0.9408934 -0.7733437 -1.1409896
[2,] 1.7184049 0.2224969 -0.8114160 0.5662810
[3,] -2.7166778 1.5315382 -1.5977639 0.5009519
[4,] 1.7531333 0.9482327 -0.1965466 -0.8645998
[5,] 0.4180210 -0.1927124 1.2947667 1.2814977
> View(mdat)
> y[1][1] 0.7288271
> y[1,][1] 0.7288271 0.9408934 -0.7733437 -1.1409896
> y[,1][1] 0.7288271 1.7184049 -2.7166778 1.7531333 0.4180210
> y[2,4][1] 0.566281
> y[c(1,3),c(2,4)]
[,1] [,2]
[1,] 0.9408934 -1.1409896
[2,] 1.5315382 0.5009519
> y[2:4,]
[,1] [,2] [,3] [,4]
[1,] 1.718405 0.2224969 -0.8114160 0.5662810
[2,] -2.716678 1.5315382 -1.5977639 0.5009519
[3,] 1.753133 0.9482327 -0.1965466 -0.8645998
> y[-1,]
[,1] [,2] [,3] [,4]
[1,] 1.718405 0.2224969 -0.8114160 0.5662810
[2,] -2.716678 1.5315382 -1.5977639 0.5009519
[3,] 1.753133 0.9482327 -0.1965466 -0.8645998
[4,] 0.418021 -0.1927124 1.2947667 1.2814977
> y[2:5,]
[,1] [,2] [,3] [,4]
[1,] 1.718405 0.2224969 -0.8114160 0.5662810
[2,] -2.716678 1.5315382 -1.5977639 0.5009519
[3,] 1.753133 0.9482327 -0.1965466 -0.8645998
[4,] 0.418021 -0.1927124 1.2947667 1.2814977
三、矩阵的运算
对于矩阵的运算:加法、减法、乘法、除法、逆运算
x<-matrix(1:4,ncol = 2,nrow = 2)
y<-matrix(c(2,4,6,8),2,2)
x
y
x+y #矩阵的加法运算
x-y #矩阵的减法运算
x%*%y #矩阵的乘法运算
x*y #只是对应位置的乘法
得出的结果:
> x<-matrix(1:4,ncol = 2,nrow = 2)
> y<-matrix(c(2,4,6,8),2,2)
> x
[,1] [,2]
[1,] 1 3
[2,] 2 4
> y
[,1] [,2]
[1,] 2 6
[2,] 4 8
> x+y
[,1] [,2]
[1,] 3 9
[2,] 6 12
> x-y
[,1] [,2]
[1,] -1 -3
[2,] -2 -4
> x%*%y #标准的线性代数在矩阵的乘法
[,1] [,2]
[1,] 14 30
[2,] 20 44
> x*y #只是对应位置上的数值相乘
[,1] [,2]
[1,] 2 18
[2,] 8 32