我需要将两列矩阵重新整形为一个类似于邻接矩阵的矩阵。 我有以下数据集:
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
依此类推......适用于4000种firm_id
。
在第一列中,firm_id_1
和firm_id_2
之间存在直接链接。例如,firm_id
= 1直接链接(第一级)到firm_id
2,4,5,间接链接(到第二级)到3通过firm_id
= 2,间接地通过firm_id
= 3将第三个学位与firm_id
= 6相关联,依此类推......
我想在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
每个数字代表网络中的分离程度。这在R中可行吗?
答案 0 :(得分: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