我试图将两个相同大的矩阵相互合并,使得从矩阵1获取第1列,然后从矩阵2获取第1列,然后从矩阵1获取第2列,然后从矩阵2获取第2列,依此类推
我已尝试使用以下代码:
for (i in 1:ncol(M1){M3<-cbind(M1[,1:i],M2[,1:i])}
但这只是根据M1的数据将两个矩阵与M2合并而不是将它们交织在一起 -
我做错了什么?
答案 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
- 循环上浪费你的时间。