我在igraph函数上遇到了一个奇怪的问题
我有一个密度很高(0.4)的无向图(N=423),为了测试从igraph得到的值,我使用了Gephi。
我已经检查了Gephi,他们报告的度数和直径都是一样的,但是igraph报告的半径和偏心率完全错误,应该是更高的值。而且,半径总是小于直径,对吗?这里它更大:)
> sg <- simplify(graph.edgelist(edges, directed=F))
> radius(sg)
[1] 8
> diameter(sg)
[1] 3
head(eccentricity(sg))
[1] 10 11 10 12 11 14
> str(sg)
IGRAPH U--- 423 41064 --
+ edges:
1 -- 3 4 6 8 9 15 25 26 28 30 37 38 41 42 47 48 49 50 53 58 63 66 68 69 71 72 76 81 83 87 88 90 95
....etc...
....etc...
由于直径为3,因此Gophies偏心率值均为2s和3s:)
我不知道我做错了什么。
2条答案
按热度按时间bttbmeg01#
我还想问一下igraph中的离心率是否考虑了加权图中的权重,因为我认为半径和离心率不考虑权重
js5cn81o2#
似乎是
eccentricity
例程中的一个bug(radius
只调用eccentricity
,因此这两个问题很可能是相关的)。作为一种解决方案,您可以使用shortest.paths
(似乎工作正常),然后取行方向的最大值来获得偏心率分数。半径只是最小偏心率。更新:您可以跟踪错误报告here的进度。