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"
)