R在行名称唯一的矩阵中添加额外的行

R在行名称唯一的矩阵中添加额外的行,r,matrix,R,Matrix,我有一个矩阵,行名a和e,列名a b c d e a b c d e a 1 0 0 1 0 e 1 0 0 1 0 我正在尝试创建一个包含新行(本例中为3行)的方形矩阵,如下所示 a b c d e a 1 0 0 1 0 e 1 0 0 1 0 b 0 0 0 0 0 c 0 0 0 0 0 d 0 0 0 0 0 三个新行的名称为b c&d(唯一行名称),并用零填充 非常感谢您的建议。使用setdiff确定需要添加哪些行,创建一个空矩阵,然后rbind将它们合并在一起: toA

我有一个矩阵,行名a和e,列名a b c d e

  a b c d e
a 1 0 0 1 0
e 1 0 0 1 0
我正在尝试创建一个包含新行(本例中为3行)的方形矩阵,如下所示

  a b c d e
a 1 0 0 1 0
e 1 0 0 1 0
b 0 0 0 0 0
c 0 0 0 0 0
d 0 0 0 0 0
三个新行的名称为b c&d(唯一行名称),并用零填充


非常感谢您的建议。

使用
setdiff
确定需要添加哪些行,创建一个空矩阵,然后
rbind
将它们合并在一起:

toAdd <- setdiff(colnames(mat), rownames(mat))
m <- matrix(0, ncol = ncol(mat), nrow = length(toAdd), 
            dimnames = list(toAdd, colnames(mat)))
rbind(mat, m)
#   a b c d e
# a 1 0 0 1 0
# e 1 0 0 1 0
# b 0 0 0 0 0
# c 0 0 0 0 0
# d 0 0 0 0 0

添加为什么不使用
rbind
作为.matrix(“[
mat <- structure(c(1L, 1L, 0L, 0L, 0L, 0L, 1L, 1L, 0L, 0L), 
                .Dim = c(2L, 5L), 
                .Dimnames = list(c("a", "e"), c("a", "b", "c", "d", "e")))