从 R 中的较小矩阵创建较大矩阵

creating a larger matrix from smaller matrices in R

我在名为 "Disintegration T1" 的文件夹中有一系列文本文件,如下所示:

> 1.txt
0   0   0   0   1
1   0   0   0   1
0   1   0   0   1
0   0   0   0   0
1   1   1   1   0
> 2.txt
0   1   1   0   1
0   0   1   1   1
1   1   0   1   1
1   1   1   0   1
0   0   0   0   1
> 3.txt
0   1   1   1
1   0   0   0
0   0   0   0
1   0   0   0

这些文件都是 4X4 或 5X5。它们必须作为矩阵读入,因为数据用于社交网络分析。我的目标是自动化将这些矩阵放入更大矩阵的过程,使这些矩阵彼此直接成对角线,并在更大矩阵内的空白处输入 0。在这种情况下,最终结果将如下所示:

> mega_matrix
0   0   0   0   1   0   0   0   0   0   0   0   0   0
1   0   0   0   1   0   0   0   0   0   0   0   0   0
0   1   0   0   1   0   0   0   0   0   0   0   0   0
0   0   0   0   0   0   0   0   0   0   0   0   0   0
1   1   1   1   0   0   0   0   0   0   0   0   0   0
0   0   0   0   0   0   1   1   0   1   0   0   0   0
0   0   0   0   0   0   0   1   1   1   0   0   0   0
0   0   0   0   0   1   1   0   1   1   0   0   0   0
0   0   0   0   0   1   1   1   0   1   0   0   0   0
0   0   0   0   0   0   0   0   0   1   0   0   0   0
0   0   0   0   0   0   0   0   0   0   0   1   1   1
0   0   0   0   0   0   0   0   0   0   1   0   0   0
0   0   0   0   0   0   0   0   0   0   0   0   0   0
0   0   0   0   0   0   0   0   0   0   1   0   0   0

谢谢!

您想要 bdiag 来自 Matrix 包:

library(Matrix)
bdiag(matrix1, matrix2, matrix3)

并完成整个目录(感谢评论中的@user20650):

bdiag(lapply(dir(), function(x){as.matrix(read.table(x))}))