R在行名称唯一的矩阵中添加额外的行
我有一个矩阵,行名a和e,列名a b c d eR在行名称唯一的矩阵中添加额外的行,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 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")))