我想从一个大矩阵中创建3个子矩阵。
新矩阵应包含:
- 新矩阵1:旧矩阵的
第1个、第4个、第7个...
元素 - 新矩阵2:旧矩阵的
第2个、第5个、第8个...
元素 - 新矩阵3:旧矩阵的
第3个、第6个、第9个...
元素
如果我的矩阵长这样:
m<-matrix(c(1:3),nrow=12, ncol=2)
[,1] [,2]
[1,] 1 1
[2,] 2 2
[3,] 3 3
[4,] 1 1
[5,] 2 2
[6,] 3 3
[7,] 1 1
[8,] 2 2
[9,] 3 3
[10,] 1 1
[11,] 2 2
[12,] 3 3
我尝试使用如下的for循环:
for循环代码示例:
for(i in 1:4){
m1<-m[i+3,]
m2<-m[i+4,]
m3<-m[i+5,]
}
但这不仅不能给我第1/2/3行,而且也不能给我所有的行。
必须有一种更优雅的方法来做到这一点。
m
时,实际上已经使用了循环规则,而你甚至没有意识到它 :) - Richard Border