我想使用R中的igraph查找图中每个节点可以达到的最大节点数。
例如,我有以下图形:
IGRAPH fb9255f DN-- 4 3- + attr:名称(v / c),X(e / l) + fb9255f(顶点名称)的边: 1 1-> 2 2-> 3 2-> 4
例如,对于节点1,我想获取所有可能的列表 可以从中到达节点(不仅使用一跳)。
在这种情况下,对于节点1,它将为:[2,3,4]
我已经阅读了igraph文档,但是看不到任何可以提供帮助的功能。
任何帮助将不胜感激。 谢谢
卡洛斯
答案 0 :(得分:1)
您可以使用subcomponent
函数进行计算。
由于您未提供任何数据,因此将举一个任意示例进行说明。
## Example graph
library(igraph)
set.seed(123)
g = erdos.renyi.game(15, 0.15, directed = TRUE)
plot(g)
subcomponent
为您提供了所有可到达的节点。在这里,我假设您正在使用有向图,并且通过沿着有向边前进就可以实现可达。您可以通过将mode
的参数更改为subcomponent
来更改此设置。
sort(subcomponent(g, 2, mode="out"))
+ 7/15 vertices:
[1] 2 5 10 12 13 14 15
如果只希望可以达到的节点数,则取长度
length(subcomponent(g, 2, mode="out"))
[1] 7