r-用填充值展开矩阵

  • 本文关键字:填充 r matrix
  • 更新时间 :
  • 英文 :


假设我有一个类似的矩阵

[,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)

最新更新