Creates a separate graph for each connected component of a graph.

## Usage

`decompose(graph, mode = c("weak", "strong"), max.comps = NA, min.vertices = 0)`

## Arguments

- graph
The original graph.

- mode
Character constant giving the type of the components, wither

`weak`

for weakly connected components or`strong`

for strongly connected components.- max.comps
The maximum number of components to return. The first

`max.comps`

components will be returned (which hold at least`min.vertices`

vertices, see the next parameter), the others will be ignored. Supply`NA`

here if you don't want to limit the number of components.- min.vertices
The minimum number of vertices a component should contain in order to place it in the result list. E.g. supply 2 here to ignore isolate vertices.

## See also

`is_connected()`

to decide whether a graph is connected,
`components()`

to calculate the connected components of a graph.

Connected components
`articulation_points()`

,
`biconnected_components()`

,
`component_distribution()`

,
`is_biconnected()`

## Author

Gabor Csardi csardi.gabor@gmail.com

## Examples

```
# the diameter of each component in a random graph
g <- sample_gnp(1000, 1 / 1000)
components <- decompose(g, min.vertices = 2)
sapply(components, diameter)
#> [1] 1 2 1 15 11 14 1 4 20 3 1 8 5 5 14 1 2 8 6 2 4 3 2 4 2
#> [26] 6 15 1 4 1 1 2 1 6 4 5 1 1 7 2 1 2 1 1 1 1 1 5 1 2
#> [51] 7 1 2 1 1 5 1 6 3 1 1 7 2 2 1 2 3 3 1 1 1 1 4 3 1
#> [76] 1 3 4 2 1 1 4 1 2 4 1 1 2 2 2 5 1 2 1 1 1 1 2 1 2
#> [101] 1 1 1 1 2 1 3 1 1 1 1 1 1 2 1 1 2 1 1 1 1 3 1 1 1
#> [126] 1 2 1 1 1 2 1 1 1
```