我是一名有用的助手,可以为您翻译文本。
输出应该如下所示:(第一部分是第一个矩阵,第二部分是第二个矩阵 - 我用空格分隔以获得更好的视图)
我有一个包含25个稀疏矩阵的大列表(它们非常大-其中一个矩阵中有100M或更多元素),我需要将它们合并成一个大的稀疏矩阵。
例如:一个矩阵A可能看起来像这样(它是我真实矩阵的子矩阵,其中包含100M个元素之一):
> A
5 x 4 sparse Matrix of class "dgCMatrix"
SKU
CustomerID 404 457 547 558
100002_24655 1 . . .
100003_46919 . 1 1 .
100007_46702 . . . .
100012_47709 . . . .
100013_46132 1 1 1 1
> dput(A)
new("dgCMatrix"
, i = c(0L, 4L, 1L, 4L, 1L, 4L, 4L)
, p = c(0L, 2L, 4L, 6L, 7L)
, Dim = c(5L, 4L)
, Dimnames = structure(list(CustomerID = c("100002_24655", "100003_46919",
"100007_46702", "100012_47709", "100013_46132"), SKU = c("404",
"457", "547", "558")), .Names = c("CustomerID", "SKU"
))
, x = c(1, 1, 1, 1, 1, 1, 1)
, factors = list()
)
另一个 B 可能看起来像这样:
> B
7 x 5 sparse Matrix of class "dgCMatrix"
SKU
CustomerID 191 404 558 715 787
100002_24655 . . . . .
100007_46702 1 1 1 1 1
100012_47709 . . 1 . .
100013_46132 . . . . 1
100014_46400 . . . . .
100014_605414 1 1 1 . .
100014_631294 . . 1 1 1
> dput(B)
new("dgCMatrix"
, i = c(1L, 5L, 1L, 5L, 1L, 2L, 5L, 6L, 1L, 6L, 1L, 3L, 6L)
, p = c(0L, 2L, 4L, 8L, 10L, 13L)
, Dim = c(7L, 5L)
, Dimnames = structure(list(CustomerID = c("100002_24655", "100007_46702",
"100012_47709", "100013_46132", "100014_46400", "100014_605414",
"100014_631294"), SKU = c("191", "404", "558", "715",
"787")), .Names = c("CustomerID", "SKU"))
, x = c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
, factors = list()
)
输出应该如下所示:(第一部分是第一个矩阵,第二部分是第二个矩阵 - 我用空格分隔以获得更好的视图)
12 x 7 sparse Matrix of class "dgCMatrix"
404 457 547 558 191 715 787
[1, ] 1 . . . . . .
[2, ] . 1 1 . . . .
[3, ] . . . . . . .
[4, ] . . . . . . .
[5, ] 1 1 1 1 . . .
[6, ] . . . . . . .
[7, ] 1 . . 1 1 1 1
[8, ] . . . 1 . . .
[9, ] . . . . . . 1
[10,] . . . . . . .
[11,] 1 . . 1 1 . .
[12,] . . . 1 . 1 1
这意味着我想按列名合并。那么我该如何合并所有25个稀疏矩阵?