在R中,矩阵其实就是一个二维数组,外表类似Excel中的表格,但重点是其中的每个元素都必须具有相同的数据类型
1.矩阵的创建及引用
在R中创建矩阵分成两种情形
(1)生成一个矩阵
# 生成全部是0的矩阵
(zero = matrix(0, nrow = 3, ncol = 3))
## [,1] [,2] [,3]
## [1,] 0 0 0
## [2,] 0 0 0
## [3,] 0 0 0
# 生成一个对角全是1的矩阵,直接在diag中输入对角线向量即可
(dig = diag(rep(1, 4)))
## [,1] [,2] [,3] [,4]
## [1,] 1 0 0 0
## [2,] 0 1 0 0
## [3,] 0 0 1 0
## [4,] 0 0 0 1
(2)从已有数据转化成矩阵
# 从已有数据转化成矩阵
(M = matrix(1:12, nrow = 3, ncol = 4))
## [,1] [,2] [,3] [,4]
## [1,] 1 4 7 10
## [2,] 2 5 8 11
## [3,] 3 6 9 12
(M = matrix(1:12, nrow = 3, ncol = 4,byrow=T))
## [,1] [,2] [,3] [,4]
## [1,] 1 2 3 4
## [2,] 5 6 7 8
## [3,] 9 10 11 12
(N = diag(1: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
2.矩阵的常规操作
(1)矩阵概览
# 查看矩阵的维度
dim(M)
## [1] 3 4
# 提取矩阵的行数
nrow(M)
## [1] 3
# 提取矩阵的列数
ncol(M)
## [1] 4
# 引用元素
M[1, 2]
## [1] 4
M[1:2, 2:3]
## [,1] [,2]
## [1,] 4 7
## [2,] 5 8
# 给行列命名
colnames(M) = paste0("x_", 1:4)
rownames(M) = 1:3; M
## x_1 x_2 x_3 x_4
## 1 1 4 7 10
## 2 2 5 8 11
## 3 3 6 9 12
# 同样的命令可调用行列名
colnames(M)
## [1] "x_1" "x_2" "x_3" "x_4"
rownames(M)
## [1] "1" "2" "3"