Learn R Programming

igraph (version 0.5.1)

fastgreedy.community: Community structure via greedy optimization of modularity

Description

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

Usage

fastgreedy.community(graph, merges=TRUE, modularity=TRUE,
      weights=E(graph)$weight)

Arguments

graph
The input graph
merges
Logical scalar, whether to return the merge matrix.
modularity
Logcal scalar, whether to return a vector containing the modularity after each merge.
weights
If not NULL, then a numeric vector of edge weights. The length must match the number of edges in the graph. By default the weight edge attribute is used as weights. If it is not present, then all edge

Value

  • 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.

concept

  • Community structure
  • Fast greedy community detection

Details

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, http://www.arxiv.org/abs/cond-mat/0408187 for the details.

References

A Clauset, MEJ Newman, C Moore: Finding community structure in very large networks, http://www.arxiv.org/abs/cond-mat/0408187

See Also

walktrap.community, spinglass.community, leading.eigenvector.community, edge.betweenness.community

Examples

Run this code
g <- graph.full(5) %du% graph.full(5) %du% graph.full(5)
g <- add.edges(g, c(0,5, 0,10, 5, 10))
fastgreedy.community(g)
# The highest value of modularity is before performing the last two
# merges. So this network naturally has three communities.

Run the code above in your browser using DataLab