igraph得到连接组件的ID

时间:2017-01-15 18:33:34

标签: r igraph

如何在igraph中访问图表的top3连接组件的ID?

c <- igraph::components(g, mode = 'weak')
which(c$membership == which.max(c$csize))

会给出最大的 和

which(c$membership == which.max(c$csize-1))

c$csize-1相同的结果只会从所有值中减去-1。

2 个答案:

答案 0 :(得分:2)

您可以使用order对前三大群集的成员资格进行排序和查找,并使用%in%检查顶点是否位于其中一个群集中:

which(c$membership %in% order(c$csize, decreasing = TRUE)[1:3])
  • order(c$csize, decreasing = TRUE)提供将按降序排序size的索引(对应于群集ID);
  • c$membership包含所有顶点的群集ID;
  • 使用%in%检查群集ID是否在前三位之内;

答案 1 :(得分:1)

您可以使用tail提取前3个(就大小而言)组件,然后循环这些值以获取组件的成员。

top3 <- which(c$csize %in% tail(sort(c$csize),3) )
sapply(top3, function(x) which(c$membership == x))