一、数学上的矩阵运算:
1.生成矩阵:matrix()
> a<-matrix(data = 1:16,nrow = 4)
> a
[,1] [,2] [,3] [,4]
[1,] 1 5 9 13
[2,] 2 6 10 14
[3,] 3 7 11 15
[4,] 4 8 12 16
2.矩阵加法:+ -
> a+a
[,1] [,2] [,3] [,4]
[1,] 2 10 18 26
[2,] 4 12 20 28
[3,] 6 14 22 30
[4,] 8 16 24 32
> a-a
[,1] [,2] [,3] [,4]
[1,] 0 0 0 0
[2,] 0 0 0 0
[3,] 0 0 0 0
[4,] 0 0 0 0
3.矩阵乘法(数乘法: *矩阵乘法: %*%)
> 10*a
[,1] [,2] [,3] [,4]
[1,] 10 50 90 130
[2,] 20 60 100 140
[3,] 30 70 110 150
[4,] 40 80 120 160
> a*a
[,1] [,2] [,3] [,4]
[1,] 1 25 81 169
[2,] 4 36 100 196
[3,] 9 49 121 225
[4,] 16 64 144 256
> a%*%a
[,1] [,2] [,3] [,4]
[1,] 90 202 314 426
[2,] 100 228 356 484
[3,] 110 254 398 542
[4,] 120 280 440 600
*:表示矩阵的 Hadamard 积,也就是对应位置相乘。
%*%:是一般矩阵的乘法
4.矩阵转置:t()
> t(a)
[,1] [,2] [,3] [,4]
[1,] 1 2 3 4
[2,] 5 6 7 8
[3,] 9 10 11 12
[4,] 13 14 15 16
5.矩阵求逆:solve(a,b)
这个函数其实是求解线性方程组ax=b,a是一个系数矩阵,x是变量,b也是矩阵。当b缺失时,b默认为单位阵,此时x为a的逆矩阵。
> solve(a)
Error in solve.default(a) :
Lapack例行程序dgesv: 系统正好是奇异的: U[3,3] = 0
由6可知,矩阵的行列式为0,故a不可逆。
6.矩阵行列式 : det()
> det(a)
[1] 0
7.对角矩阵:
7.1 生成对角阵:diag(1,2,3,4)
> diag(c(1,2,3,4))
[,1] [,2] [,3] [,4]
[1,] 1 0 0 0
[2,] 0 2 0 0
[3,] 0 0 3 0
[4,] 0 0 0 4
7.2 提取对角线上的元素:diag()
> diag(c(1,2,3,4))
[,1] [,2] [,3] [,4]
[1,] 1 0 0 0
[2,] 0 2 0 0
[3,] 0 0 3 0
[4,] 0 0 0 4
8. 解矩阵方程:solve()
9.特征值和特征向量:eigen()
以下为参考资料:
R语言-强大的矩阵运算 - openthings的个人空间 - OSCHINAmy.oschina.net二、多元统计中的矩阵
1.协方差矩阵:
> cov(iris[,1:4])
Sepal.Length Sepal.Width Petal.Length Petal.Width
Sepal.Length 0.6856935 -0.0424340 1.2743154 0.5162707
Sepal.Width -0.0424340 0.1899794 -0.3296564 -0.1216394
Petal.Length 1.2743154 -0.3296564 3.1162779 1.2956094
Petal.Width 0.5162707 -0.1216394 1.2956094 0.5810063
2.相关系数矩阵:
> cor(iris[,1:4])
Sepal.Length Sepal.Width Petal.Length Petal.Width
Sepal.Length 1.0000000 -0.1175698 0.8717538 0.8179411
Sepal.Width -0.1175698 1.0000000 -0.4284401 -0.3661259
Petal.Length 0.8717538 -0.4284401 1.0000000 0.9628654
Petal.Width 0.8179411 -0.3661259 0.9628654 1.0000000
3.均数向量:rowmean();colmean();
> colMeans(iris[,1:4])
Sepal.Length Sepal.Width Petal.Length Petal.Width
5.843333 3.057333 3.758000 1.199333