Расширить матрицу значениями заполнителя - PullRequest
1 голос
/ 10 апреля 2020

Предположим, у меня есть матрица типа

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

Как я могу сделать это с функциями basi c R?

1 Ответ

1 голос
/ 10 апреля 2020

Мы можем создать matrix из 0 и присвоить

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

data

m1 <- matrix(1:9, 3, 3)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...