重塑矩阵以获得网络

Plu*_*ug4 6 r social-networking reshape

我需要将一个两列矩阵重塑成一个类似于邻接矩阵的矩阵.我有以下数据集:

firm_id_1 firm_id_2
1         2
1         4
1         5
2         1
2         3
3         2
3         6
4         1
4         5
5         4
6         3
Run Code Online (Sandbox Code Playgroud)

等等......对于4000种不同的firm_id.

在第一列中,firm_id_1和之间存在直接链接firm_id_2.例如,firm_id= 1直接链接(第一度)到firm_id2,4,5,间接链接(到第二度)到3经过firm_id= 2,并间接链接到第三度到firm_id= 6经过firm_id= 3,依此类推...

我想在R中构建这个矩阵:

firm_id [1] [2] [3] [4] [5] [6]
[1]          1   2   1   1   3
[2]      1       1           2
[3]          1               1
[4]      1
[5]      1
[6]              1   
Run Code Online (Sandbox Code Playgroud)

每个数字代表网络中的分离程度.这在R中可行吗?

flo*_*del 8

library(igraph)
g <- graph.edgelist(mat)
shortest.paths(g)

#      [,1] [,2] [,3] [,4] [,5] [,6]
# [1,]    0    1    2    1    1    3
# [2,]    1    0    1    2    2    2
# [3,]    2    1    0    3    3    1
# [4,]    1    2    3    0    1    4
# [5,]    1    2    3    1    0    4
# [6,]    3    2    1    4    4    0
Run Code Online (Sandbox Code Playgroud)