R语言 组合矩阵
合并矩阵涉及到两个或多个较小的矩阵的串联,无论是按行还是按列,以形成一个较大的矩阵。这基本上是一个数据处理操作,所涉及的矩阵必须具有兼容的大小才能执行该操作。矩阵可以在水平或垂直方向上组合。
在R中,有两种组合矩阵的方式。
- 列式组合
- 行式组合
列式组合
R中的column bind, cbind() 函数,用于将两个数据框架或矩阵A_m_*_n and B_m_*_p
(n可能等于也可能不等于p)按其列合并在一起。所涉及的矩阵应该有相同的行数。
例子
# 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))
输出
[,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() 函数,用于将两个数据框或矩阵A_m_*_p and B_n_*_p
(m可能等于也可能不等于n),按其行数合并。所涉及的矩阵应该有相同的列数。
例子
# 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是第二个矩阵的元素总数。