用较小的矩阵更改较大矩阵的一部分

时间:2014-10-08 16:01:34

标签: r

我有两个矩阵,我想用较小的矩阵改变较大的一部分。

所以这是第一个,这是第二个矩阵:

更大的矩阵:

matrix1=matrix(1:36,nrow=6,ncol=6)

较小的矩阵:

matrix2=matrix(1:10,nrow=2,ncol=5)

通过合并它们,结果应该是这样的想法:

       [,1] [,2][,3] [,4]  [,5][,6]
[1,]    1    7   13   19   25   31
[2,]    2    8   14   20   26   32
[3,]    3    9   15   21   27   33
[4,]    1   3    5    7    9    34
[5,]    2   4    6    8    10   35
[6,]    6   12   18   24   30   36

其中只有一部分结果矩阵在特定部分的较大部分内部具有较小的部分。

1 个答案:

答案 0 :(得分:1)

这里的规则并不清楚。您似乎想要将matrix1的第4和第5行从1列替换为5 matrix2。在那种情况下:

 matrixNew <- matrix1  #created a copy of `matrix1`
 matrixNew[4:5,-6] <- matrix2 #replace values in `matrixNew on rows 4 and 5 from columns 1 to 5 with matrix2 values
 matrixNew
 #       [,1] [,2] [,3] [,4] [,5] [,6]
 #[1,]    1    7   13   19   25   31
 #[2,]    2    8   14   20   26   32
 #[3,]    3    9   15   21   27   33
 #[4,]    1    3    5    7    9   34
 #[5,]    2    4    6    8   10   35
 #[6,]    6   12   18   24   30   36

specific part较小的一个位于较大的一个位于第4行和第5行以及第1列到第5列。因此,我使用了[ subset和rowindex { {1}}即4和5,以及列索引4:5。在matrix1中,有6列,因此,-6删除第6列并在子集中留下1:5列。基于-6的值将替换为index值。