Find community structure that minimizes the expected description length of a random walker trajectory. If the graph is directed, edge directions will be taken into account.
Usage
cluster_infomap(
graph,
e.weights = NULL,
v.weights = NULL,
nb.trials = 10,
modularity = TRUE
)Arguments
- graph
The input graph. Edge directions will be taken into account.
- e.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 edges are considered to have the same weight. Larger edge weights correspond to stronger connections.- v.weights
If not
NULL, then a numeric vector of vertex weights. The length must match the number of vertices in the graph. By default the ‘weight’ vertex attribute is used as weights. If it is not present, then all vertices are considered to have the same weight. A larger vertex weight means a larger probability that the random surfer jumps to that vertex.- nb.trials
The number of attempts to partition the network (can be any integer value equal or larger than 1).
- modularity
Logical scalar, whether to calculate the modularity score of the detected community structure.
Value
cluster_infomap() returns a communities() object,
please see the communities() manual page for details.
References
The original paper: M. Rosvall and C. T. Bergstrom, Maps of information flow reveal community structure in complex networks, PNAS 105, 1118 (2008) doi:10.1073/pnas.0706851105 , https://arxiv.org/abs/0707.0609
A more detailed paper: M. Rosvall, D. Axelsson, and C. T. Bergstrom, The map equation, Eur. Phys. J. Special Topics 178, 13 (2009). doi:10.1140/epjst/e2010-01179-1 , https://arxiv.org/abs/0906.1405.
See also
Other community finding methods and communities().
Community detection
as_membership(),
cluster_edge_betweenness(),
cluster_fast_greedy(),
cluster_fluid_communities(),
cluster_label_prop(),
cluster_leading_eigen(),
cluster_leiden(),
cluster_louvain(),
cluster_optimal(),
cluster_spinglass(),
cluster_walktrap(),
compare(),
groups(),
make_clusters(),
membership(),
modularity.igraph(),
plot_dendrogram(),
split_join_distance(),
voronoi_cells()
Author
Martin Rosvall wrote the original C++ code. This was ported to be more igraph-like by Emmanuel Navarro. The R interface and some cosmetics was done by Gabor Csardi csardi.gabor@gmail.com.
Examples
## Zachary's karate club
g <- make_graph("Zachary")
imc <- cluster_infomap(g)
membership(imc)
#> [1] 1 1 1 1 2 2 2 1 3 1 2 1 1 1 3 3 2 1 3 1 3 1 3 3 3 3 3 3 3 3 3 3 3 3
communities(imc)
#> $`1`
#> [1] 1 2 3 4 8 10 12 13 14 18 20 22
#>
#> $`2`
#> [1] 5 6 7 11 17
#>
#> $`3`
#> [1] 9 15 16 19 21 23 24 25 26 27 28 29 30 31 32 33 34
#>
