This function creates a new graph, by merging several vertices into one. The vertices in the new graph correspond to sets of vertices in the input graph.
Arguments
- graph
The input graph, it can be directed or undirected.
- mapping
A numeric vector that specifies the mapping. Its elements correspond to the vertices, and for each element the ID in the new graph is given.
- ...
These dots are for future extensions and must be empty.
- vertex_attr_combine
Specifies how to combine the vertex attributes in the new graph. Please see
attribute.combination()for details. The defaultNULLuses thevertex_attr_combineigraph option.
Details
The attributes of the graph are kept. Graph and edge attributes are
unchanged, vertex attributes are combined, according to the
vertex_attr_combine parameter.
See also
Other functions for manipulating graph structure:
+.igraph(),
add_edges(),
add_vertices(),
complementer(),
compose(),
connect(),
delete_edges(),
delete_vertices(),
difference(),
difference.igraph(),
disjoint_union(),
edge(),
igraph-minus,
intersection(),
intersection.igraph(),
path(),
permute(),
rep.igraph(),
reverse_edges(),
simplify(),
transitive_closure(),
union(),
union.igraph(),
vertex()
Author
Gabor Csardi csardi.gabor@gmail.com
Examples
g <- make_ring(10)
g$name <- "Ring"
V(g)$name <- letters[1:vcount(g)]
E(g)$weight <- runif(ecount(g))
g2 <- contract(g, rep(1:5, each = 2),
vertex_attr_combine = toString
)
## graph and edge attributes are kept, vertex attributes are
## combined using the 'toString' function.
print(g2, g = TRUE, v = TRUE, e = TRUE)
#> ── <igraph> Ring ──────────────────────────────────────────────────── 4ae985c ──
#> ℹ undirected · named · weighted
#> ℹ 5 vertices · 10 edges
#>
#> ── Attributes ──────────────────────────────────────────────────────────────────
#> → graph: name <chr>, mutual <lgl>, circular <lgl>
#> → vertex: name <chr>
#> → edge: weight <dbl>
#>
#> ── Edges (vertex names) ────────────────────────────────────────────────────────
#> [1] a, b ─ a, b a, b ─ c, d c, d ─ c, d c, d ─ e, f e, f ─ e, f
#> [6] e, f ─ g, h g, h ─ g, h g, h ─ i, j i, j ─ i, j a, b ─ i, j
