假设我有一个类似的矩阵
[,1] [,2] [,3]
[1,] 1 4 7
[2,] 2 5 8
[3,] 3 6 9
我想把它扩展到5x5,并用一些给定的值(比如0(填充新的单元格,这样新的矩阵看起来像:
[,1] [,2] [,3] [,4] [,5]
[1,] 1 4 7 0 0
[2,] 2 5 8 0 0
[3,] 3 6 9 0 0
[4,] 0 0 0 0 0
[5,] 0 0 0 0 0
我怎么能用基本的R函数做到这一点?
我们可以创建一个0的matrix
并分配
m2 <- matrix(0, 5, 5)
m2[seq_len(nrow(m1)), seq_len(ncol(m1))] <- m1
或者另一个选项是bdiag
library(Matrix)
as.matrix(bdiag(m1, diag(2) * 0))
# [,1] [,2] [,3] [,4] [,5]
#[1,] 1 4 7 0 0
#[2,] 2 5 8 0 0
#[3,] 3 6 9 0 0
#[4,] 0 0 0 0 0
#[5,] 0 0 0 0 0
数据
m1 <- matrix(1:9, 3, 3)