问题描述
如何获取图形最大部分的子图?
size_components_g <-clusters(g,mode="weak")$csize
size_components_g
#1 2 3 10 25 2 2 1
max_size <- max(size_components_g)
max_size
#25
所以25是最大的大小。
我想提取具有这25个顶点的分量。我该怎么办?
解决方法
R包中任何函数的输出值的详细说明可以在其文档中找到。在这种情况下,igraph::clusters
返回一个命名列表,其中存储了csize
个簇的大小,而membership
包含每个顶点所属的簇ID。
g <- igraph::sample_gnp(20,1/20)
components <- igraph::clusters(g,mode="weak")
biggest_cluster_id <- which.max(components$csize)
# ids
vert_ids <- V(g)[components$membership == biggest_cluster_id]
# subgraph
igraph::induced_subgraph(g,vert_ids)