在矩阵合并中,常见的方法有cbind()
和rbind()
。其中,前者为按列合并,后者为按行合并。
但是这两个函数有个缺点,就是不能应用到循环之中。例如:
A<-matrix(1:12,nrow = 4,byrow = T)
B<-matrix(1:8,nrow = 4,byrow = T)
C<-cbind(A,B)
得到的矩阵C为【按列合并两者行数必须相同】:
但是如果将这个方法应用在循环中,就无法取得预期效果:
A<-matrix(1:12,nrow = 4,byrow = T)
C<-matrix(0,ncol = 3,byrow = F)
for (i in 1:3) {
C[1,]<-A[1,i]
}
结果为:
A:
C:
所以,如果要循环写入的话,不需要for循环即可:
A<-matrix(1:12,nrow = 4,byrow = T)
C<-matrix(0,ncol = 3,byrow = F)
C[1,]<-A[1,1:3]
C:
同样的方法也可以用在一行或一列统一写入新矩阵中
搞定!
债见!