在 R 中组合矩阵
组合矩阵涉及连接两个或多个较小的矩阵,无论是行还是列,以形成一个更大的矩阵。它基本上是一种数据操作操作,其中所涉及的矩阵必须具有兼容的大小才能执行操作。矩阵可以水平或垂直组合。
R中有两种组合矩阵的方法:
- 逐列组合
- 逐行组合
逐列组合
R中的列绑定, cbind()函数,用于合并两个数据框或矩阵 (n 可能等于也可能不等于 p)由它们的列组合在一起。所涉及的矩阵应具有相同的行数。
例子:
Python3
# R program for combining two matrices
# column-wise
# Creating 1st Matrix
B = matrix(c(1, 2), nrow = 1, ncol = 2)
# Creating 2nd Matrix
C = matrix(c(3, 4, 5), nrow = 1, ncol = 3)
# Original Matrices
print(B)
print(C)
# Combining matrices
print (cbind(B, C))
Python3
# R program for combining two matrices
# row-wise
# Creating 1st Matrix
B = matrix(c(1, 2, 3), nrow = 1, ncol = 3)
# Creating 2nd Matrix
C = matrix(c(4, 5, 6, 7, 8, 9), nrow = 2, ncol = 3)
# Original Matrices
print(B)
print(C)
# Combining matrices
print (rbind(B, C))
输出:
[,1] [,2]
[1,] 1 2
[,1] [,2] [,3]
[1,] 3 4 5
[,1] [,2] [,3] [,4] [,5]
[1,] 1 2 3 4 5
在上面的代码中,矩阵 C 的列 [3 4 5] 按顺序添加到矩阵 B 的列 [1 2] 中。这些更改不会对任何现有矩阵进行。
特性:
- 结果矩阵的列数是两个矩阵的列的总和。
- 不可交换:列按函数中指定参数的顺序合并。因此,cbind(a, b) != cbind(b, a)
- 关联: cbind(cbind(a, b), c) = cbind(a, cbind(b, c))
逐行组合
R中的行绑定, rbind()函数,用于合并两个数据框或矩阵 (m 可能等于也可能不等于 n),由它们的行组成。所涉及的矩阵应具有相同的列数。
例子:
Python3
# R program for combining two matrices
# row-wise
# Creating 1st Matrix
B = matrix(c(1, 2, 3), nrow = 1, ncol = 3)
# Creating 2nd Matrix
C = matrix(c(4, 5, 6, 7, 8, 9), nrow = 2, ncol = 3)
# Original Matrices
print(B)
print(C)
# Combining matrices
print (rbind(B, C))
输出:
[,1] [,2] [,3]
[1,] 1 2 3
[,1] [,2] [,3]
[1,] 4 6 8
[2,] 5 7 9
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 4 6 8
[3,] 5 7 9
[4 6 8] 和 [5 7 9] 行按顺序附加到矩阵 B[1 2 3] 的一行。未对原始矩阵进行任何更改。
特性:
- 结果矩阵的行数是两个矩阵的行数之和。
- 不可交换:行按函数中指定参数的顺序合并。因此,rbind(a, b) != rbind(b, a)
- 联想: rbind(rbind(a, b), c) = rbind(a, rbind(b, c))
时间复杂度:O(m+n)
空间复杂度:O(m+n),其中 m 是第一个矩阵的元素总数和第二个矩阵的 n 个元素的总数。