我在一个名为“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
谢谢!
答案 0 :(得分:3)
你想要Matrix包中的bdiag
:
library(Matrix)
bdiag(matrix1, matrix2, matrix3)
要完成整个目录(感谢评论中的@ user20650):
bdiag(lapply(dir(), function(x){as.matrix(read.table(x))}))