我需要在R中使用快速方法将矩阵插入到R中的另一个矩阵中。我当前的矩阵形状是块对角形状,如下所示:
library(Matrix)
block1 <- new("dgCMatrix" , i = c(0L, 1L, 2L, 0L, 1L, 2L, 0L, 1L, 2L, 3L, 4L,
5L, 3L, 4L, 5L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 6L, 7L, 8L,
9L, 6L, 7L, 8L, 9L, 6L, 7L, 8L, 9L) ,
p = c(0L, 3L, 6L, 9L, 12L, 15L, 18L, 22L, 26L, 30L, 34L) ,
Dim = c(10L, 10L) , Dimnames = list(NULL, NULL) ,
x = c(1.002, 0.002, 0, 0.002, 1.002, 0.002, 0, 0.002, 1.002,
1.002, 0.002, 0, 0.002, 1.002, 0.002, 0, 0.002, 1.002,
3.002, 1.924, 0.507, 0.055, 1.924, 3.002, 1.924,
0.507, 0.507, 1.924, 3.002, 1.924, 0.055, 0.507, 1.924, 3.002) ,
factors = list())
我想将下面的矩阵插入到上面矩阵的元素[4:10,1:6]中。
block2 <-
structure(c(0.779, 0.018, 0, 0.779, 0.018, 0, 0.256, 0.169, 0, 0.256,
0.169, 0, 0.035, 0.641, 0, 0.035, 0.641, 0, 0.002, 1,
0.002, 0.002, 1, 0.002), .Dim = c(6L, 4L))
我目前正在使用:
block1[1:6,7:10]=block2
然而,如果我的矩阵很大,这需要花费很多时间。我可以使用其他任何功能或巧妙的方法吗?