Community structure via greedy optimization of modularity

This function tries to find dense subgraph, also called communities in graphs via directly optimizing a modularity score.

Usage, merges=TRUE, modularity=TRUE)
The input graph
Logical scalar, whether to return the merge matrix.
Logcal scalar, whether to return a vector containing the modularity after each merge.

This function implements the fast greedy modularity optimization algorithm for finding community structure, see A Clauset, MEJ Newman, C Moore: Finding community structure in very large networks, for the details.


  • A named list with the following members:
    • merges
    {A matrix with two column, this represents a dendogram and contains all the merges the algorithm performed. Each line is one merge and it is given by the ids of the two communities merged. The community ids are integer numbers starting from zero and the communities between zero and the number of vertices (N) minus one belong to individual vertices. The first line of the matrix gives the first merge, this merge creates community N, the number of vertices, the second merge creates community N+1, etc. }
  • modularityA numeric vector containing the modularity value of the community structure after performing every merge.


A Clauset, MEJ Newman, C Moore: Finding community structure in very large networks,

See Also,,,

g <- graph.full(5) %du% graph.full(5) %du% graph.full(5)
g <- add.edges(g, c(0,5, 0,10, 5, 10))
# The highest value of modularity is before performing the last two
# merges. So this network naturally has three communities.
Documentation reproduced from package igraph, version 0.4.4, License: GPL version 2 or later (June, 1991)

Community examples

Looks like there are no examples yet.