如何将igraph拆分为连通子图?

如何将igraph拆分为连通子图?,r,igraph,R,Igraph,我有一个igraph,有几个断开的组件。例如: library(igraph) g <- simplify( graph.compose( graph.ring(10), graph.star(5, mode = "undirected") ) ) + edge("7", "8") 库(igraph) g您可以使用以下公式计算图形的连接组件: clusters(g) # $membership # [1] 1 1 1 1 1 1 2 2 3 1 # # $cs

我有一个igraph,有几个断开的组件。例如:

library(igraph)
g <- simplify(
  graph.compose(
    graph.ring(10), 
    graph.star(5, mode = "undirected")
  )
) + edge("7", "8")
库(igraph)

g您可以使用以下公式计算图形的连接组件:

clusters(g)
# $membership
# [1] 1 1 1 1 1 1 2 2 3 1
# 
# $csize
# [1] 7 2 1
# 
# $no
# [1] 3
或者,您可以使用以下方法为图形的每个组件创建单独的图形:

dg <- decompose.graph(g) # returns a list of three graphs
plot(dg[[1]]) # plot e.g. the 1st one

dg这是否保证第一个组件始终是最大的?@user538603 no。但是,您可以通过
vcount
对结果进行排序,并获得所需的结果。
dg <- decompose.graph(g) # returns a list of three graphs
plot(dg[[1]]) # plot e.g. the 1st one