【发布时间】:2016-11-01 00:11:17
【问题描述】:
我想使用它们的行名合并几个矩阵。 这些矩阵的行数和列数不同。 例如:
m1 <- matrix(c(1, 2, 3, 4, 5, 6), 3, 2)
rownames(m1) <- c("a","b","c")
m2 <- matrix(c(1, 2, 3, 5, 4, 5, 6, 2), 4, 2)
rownames(m2) <- c("a", "b", "c", "d")
m3 <- matrix(c(1, 2, 3, 4), 2,2)
rownames(m3) <- c("d", "e")
mlist <- list(m1, m2, m3)
对于他们,我想得到:
Row.names V1.x V2.x V1.y V2.y V1.z V2.z
a 1 4 1 4 NA NA
b 2 5 2 5 NA NA
c 3 6 3 6 NA NA
d NA NA 5 2 1 3
e NA NA NA NA 2 4
我已尝试将 lapply 与函数合并一起使用:
M <- lapply(mlist, merge, mlist, by = "row.names", all = TRUE)
但是,它不起作用:
data.frame(c(1, 2, 3, 4, 5, 6), c(1, 2, 3, 5, 4, 5, 6, 2), c(1, :
参数意味着不同的行数:3、4、2
有没有一种优雅的方式来合并这些矩阵?
【问题讨论】: