【问题标题】:R/Igraph Display edge weights in an edge list?R/Igraph 在边缘列表中显示边缘权重?
【发布时间】:2013-04-29 22:34:35
【问题描述】:

将图形对象作为边列表查看时,有什么方法可以显示边权重?

我想本着以下精神做一些事情:

get.edgelist(graph, attr='weight')

以便查看与节点旁边列出的权重的边配对,但这似乎是不允许的。我知道如何查看权重的唯一方法是将网络数据视为邻接矩阵。希望这不是唯一的方法。

【问题讨论】:

    标签: r igraph


    【解决方案1】:

    在 pkg:igraph 中使用函数 get.edgelist 的帮助页面中的示例:

    > cbind( get.edgelist(g) , round( E(g)$weight, 3 ))
          [,1] [,2] [,3]   
     [1,] "a"  "b"  "0.342"
     [2,] "b"  "d"  "0.181"
     [3,] "b"  "e"  "0.403"
     [4,] "b"  "f"  "0.841"
     [5,] "d"  "f"  "0.997"
     [6,] "e"  "g"  "0.029"
     [7,] "a"  "h"  "0.17" 
     [8,] "b"  "j"  "0.69" 
     [9,] "g"  "j"  "0.422"
    

    【讨论】:

      【解决方案2】:

      另一种选择是使用 igraph 包中的 get.data.frame()

      # create a random graph with weighted edges      
      g <- erdos.renyi.game(5, 5/10, directed = TRUE)
      E(g)$weight <- runif(length(E(g)), 1, 5)
      
      # pull nodes and edge weights
      get.data.frame(g)
      
         from to   weight
      1     1  5 4.716679
      2     2  1 4.119414
      3     1  2 4.535791
      4     2  5 2.486553
      5     3  2 4.932118
      6     5  2 3.353693
      7     1  3 3.003062
      8     2  3 3.350118
      9     1  4 2.929069
      10    2  4 4.929474
      11    5  4 4.333134
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-10-17
        • 2018-11-04
        相关资源
        最近更新 更多