在将图形对象视为边缘列表时,有没有办法显示边缘权重?
我想本着以下精神做点什么:
get.edgelist(graph, attr='weight')
以便查看边缘配对以及节点旁边列出的权重,但似乎不允许这样做。我知道如何查看权重的唯一方法是将网络数据视为邻接矩阵。希望这不是唯一的方法。
答案 0 :(得分:12)
使用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"
答案 1 :(得分:1)
另一种选择是使用get.data.frame()
软件包中的igraph
# 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