简体   繁体   English

R / Igraph在边缘列表中显示边缘权重?

[英]R/Igraph Display edge weights in an edge list?

Is there any way to display edge weights when viewing the graph object as an edge list? 在将图形对象视为边缘列表时,有没有办法显示边缘权重?

I want to do something in the spirit of: 我想本着以下精神做点什么:

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

so as to view the edge pairings with the weights listed alongside the nodes, but that seems not to be allowed. 以便查看边缘配对与节点旁边列出的权重,但似乎不允许。 Only way I know how to view the weights is to view the network data as an adjacency matrix. 我知道如何查看权重的唯一方法是将网络数据视为邻接矩阵。 Hoping that's not the only way. 希望这不是唯一的方法。

Using the example in the help page for function get.edgelist in pkg:igraph: 使用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"

Another option is to use get.data.frame() from the igraph package 另一种选择是使用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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM