在R中将矩阵合并到一起

时间:2014-05-22 10:16:17

标签: r matrix

我试图将两个相同大的矩阵相互合并,使得从矩阵1获取第1列,然后从矩阵2获取第1列,然后从矩阵1获取第2列,然后从矩阵2获取第2列,依此类推

我已尝试使用以下代码:

for (i in 1:ncol(M1){M3<-cbind(M1[,1:i],M2[,1:i])}

但这只是根据M1的数据将两个矩阵与M2合并而不是将它们交织在一起 -

我做错了什么?

2 个答案:

答案 0 :(得分:0)

我怀疑你写的代码是这样的:

for (i in 1:ncol(M1){M3<-cbind(M3, M1[,i],M2[,i])}

然而,迭代cbinding确实不是R中的好习惯 你可能会做得更好:

M3 <- cbind(M1, M2)
M3 <- M3[, rep(1:ncol(M1), each=2) + rep(c(0,ncol(M1)), ncol(M1))]

答案 1 :(得分:0)

尝试 matrix(rbind(M1,M2),nrow(M1),ncol(M1)+ncol(M2))

诀窍是R逐列处理矩阵。不要在for - 循环上浪费你的时间。