【问题标题】:Reshape a matrix to get a network重塑矩阵以获得网络
【发布时间】:2014-01-28 20:09:11
【问题描述】:

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

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 直接关联(一级),通过firm_id=2 与 3 间接关联(二级),并与三级间接关联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   

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

【问题讨论】:

    标签: r social-networking reshape


    【解决方案1】:
    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
    

    【讨论】:

    • 完美。谢谢!您对我如何绘制firm_id=1 的网络及其所有链接并能够查看其直接和间接连接有什么建议吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-16
    • 2019-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多