Learn R Programming

cograph (version 2.7.2)

community_label_propagation: Label Propagation Community Detection

Description

Fast semi-synchronous label propagation algorithm. Each node adopts the most frequent label among its neighbors.

Usage

community_label_propagation(
  x,
  weights = NULL,
  mode = c("out", "in", "all"),
  initial = NULL,
  fixed = NULL,
  seed = NULL,
  ...
)

com_lp( x, weights = NULL, mode = c("out", "in", "all"), initial = NULL, fixed = NULL, seed = NULL, ... )

Value

A cograph_communities object

A cograph_communities object. See detect_communities.

Arguments

x

Network input

weights

Edge weights. NULL uses network weights, NA for unweighted.

mode

For directed graphs: "out" (default), "in", or "all".

initial

Initial labels (integer vector or NULL for unique labels).

fixed

Logical vector indicating which labels are fixed.

seed

Random seed for reproducibility. Default NULL.

...

Passed to to_igraph, whose only other argument is directed; anything else raises an "unused argument" error.

References

Raghavan, U.N., Albert, R., & Kumara, S. (2007). Near linear time algorithm to detect community structures in large-scale networks. Physical Review E, 76, 036106.

Examples

Run this code
if (requireNamespace("igraph", quietly = TRUE)) {
  g <- igraph::make_graph("Zachary")

  # Basic label propagation
  comm <- community_label_propagation(g)

  # With some nodes fixed to specific communities
  initial <- rep(NA, igraph::vcount(g))
  initial[1] <- 1  # Node 1 in community 1
  initial[34] <- 2 # Node 34 in community 2
  fixed <- !is.na(initial)
  initial[is.na(initial)] <- seq_len(sum(is.na(initial)))
  comm2 <- community_label_propagation(g, initial = initial, fixed = fixed)
}
net <- as_cograph(matrix(runif(25), 5, 5))
com_lp(net)

Run the code above in your browser using DataLab