简体   繁体   中英

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:

> 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

# 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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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