从 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))}))
我在名为 "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))}))