| community.detection {EGAnet} | R Documentation |
Apply a Community Detection Algorithm
Description
General function to apply community detection algorithms available in
igraph. Follows the EGAnet approach of setting
singleton and disconnected nodes to missing (NA)
Usage
community.detection(
network,
algorithm = c("edge_betweenness", "fast_greedy", "fluid", "infomap", "label_prop",
"leading_eigen", "leiden", "louvain", "optimal", "spinglass", "walktrap"),
allow.singleton = FALSE,
membership.only = TRUE,
...
)
Arguments
network |
Matrix or |
algorithm |
Character or
|
allow.singleton |
Boolean (length = 1).
Whether singleton or single node communities should be allowed.
Defaults to |
membership.only |
Boolean (length = 1).
Whether the memberships only should be output.
Defaults to |
... |
Additional arguments to be passed on to
|
Value
Returns memberships from a community detection algorithm
Author(s)
Hudson Golino <hfg9s at virginia.edu> and Alexander P. Christensen <alexpaulchristensen@gmail.com>
References
Csardi, G., & Nepusz, T. (2006). The igraph software package for complex network research. InterJournal, Complex Systems, 1695.
Examples
# Load data
wmt <- wmt2[,7:24]
# Estimate network
network <- EBICglasso.qgraph(data = wmt)
# Compute Edge Betweenness
community.detection(network, algorithm = "edge_betweenness")
# Compute Fast Greedy
community.detection(network, algorithm = "fast_greedy")
# Compute Fluid
community.detection(
network, algorithm = "fluid",
no.of.communities = 2 # needs to be set
)
# Compute Infomap
community.detection(network, algorithm = "infomap")
# Compute Label Propagation
community.detection(network, algorithm = "label_prop")
# Compute Leading Eigenvector
community.detection(network, algorithm = "leading_eigen")
# Compute Leiden (with modularity)
community.detection(
network, algorithm = "leiden",
objective_function = "modularity"
)
# Compute Leiden (with CPM)
community.detection(
network, algorithm = "leiden",
objective_function = "CPM",
resolution_parameter = 0.05 # "edge density"
)
# Compute Louvain
community.detection(network, algorithm = "louvain")
# Compute Optimal (identifies maximum modularity solution)
community.detection(network, algorithm = "optimal")
# Compute Spinglass
community.detection(network, algorithm = "spinglass")
# Compute Walktrap
community.detection(network, algorithm = "walktrap")
# Example with {igraph} network
community.detection(
convert2igraph(network), algorithm = "walktrap"
)