重塑矩阵以获得网络

时间:2014-01-10 01:01:52

标签: 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

依此类推......适用于4000种firm_id

在第一列中,firm_id_1firm_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中可行吗?

1 个答案:

答案 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