在R中设置检测到的社区的大小

时间:2016-08-11 12:34:05

标签: r igraph

我正在使用igraph社区检测,社区规模太小或太大。有没有办法指定检测到的社区的大小?如果没有,有没有办法让我手动拆分或合并从igraph检测到的社区?谢谢!

1 个答案:

答案 0 :(得分:0)

虽然我认为不可能设置/指定igraph检测到的社区的 size ,但是某些社区检测算法允许您指定许多的方式您想要的社区(分割/合并的替代方案)。

您可以使用cluster_spinglass()功能并将spins设置为所需社区的数量。 使用其中一种分层方法,然后使用cut_at()获取所需数量的社区,使用no参数指定所需的社区数量。

示例代码:

# Set up your graph object
g <-[an igraph object] # set up your graph

# Use spinglass to create a set number of communities
sg <- g %>% cluster_spinglass(spins = 10) # produces 10 communities using spinglass algorithm

# Use hierarchical methods and cut_at to create a set number of communities 
walk <- g %>% cluster_walktrap() %>% cut_at(no = 10) 
eb <- g %>% cluster_edge_betweenness() %>% cut_at(no = 10)

请注意,spinglass方法会返回一个communities对象,而cut_at方法只会返回图形中所有节点的社区索引(即一个简单的数字)矢量)。

您可以在communities help page上找到更多详细信息。