`subgraph()`

creates a subgraph of a graph, containing only the specified
vertices and all the edges among them.

## Usage

```
subgraph(graph, vids)
induced_subgraph(
graph,
vids,
impl = c("auto", "copy_and_delete", "create_from_scratch")
)
subgraph.edges(graph, eids, delete.vertices = TRUE)
```

## Arguments

- graph
The original graph.

- vids
Numeric vector, the vertices of the original graph which will form the subgraph.

- impl
Character scalar, to choose between two implementation of the subgraph calculation. ‘

`copy_and_delete`

’ copies the graph first, and then deletes the vertices and edges that are not included in the result graph. ‘`create_from_scratch`

’ searches for all vertices and edges that must be kept and then uses them to create the graph from scratch. ‘`auto`

’ chooses between the two implementations automatically, using heuristics based on the size of the original and the result graph.- eids
The edge ids of the edges that will be kept in the result graph.

- delete.vertices
Logical scalar, whether to remove vertices that do not have any adjacent edges in

`eids`

.

## Details

`induced_subgraph()`

calculates the induced subgraph of a set of vertices
in a graph. This means that exactly the specified vertices and all the edges
between them will be kept in the result graph.

`subgraph.edges()`

calculates the subgraph of a graph. For this function
one can specify the vertices and edges to keep. This function will be
renamed to `subgraph()`

in the next major version of igraph.

The `subgraph()`

function currently does the same as `induced_subgraph()`

(assuming ‘`auto`

’ as the `impl`

argument), but this behaviour
is deprecated. In the next major version, `subgraph()`

will overtake the
functionality of `subgraph.edges()`

.

## See also

Other structural.properties:
`bfs()`

,
`component_distribution()`

,
`connect()`

,
`constraint()`

,
`coreness()`

,
`degree()`

,
`dfs()`

,
`distance_table()`

,
`edge_density()`

,
`feedback_arc_set()`

,
`girth()`

,
`is_acyclic()`

,
`is_dag()`

,
`is_matching()`

,
`k_shortest_paths()`

,
`knn()`

,
`reciprocity()`

,
`subcomponent()`

,
`topo_sort()`

,
`transitivity()`

,
`unfold_tree()`

,
`which_multiple()`

,
`which_mutual()`

## Author

Gabor Csardi csardi.gabor@gmail.com

## Examples

```
g <- make_ring(10)
g2 <- induced_subgraph(g, 1:7)
g3 <- subgraph.edges(g, 1:5)
```