# [[.igraph

##### Query and manipulate a graph as it were an adjacency list

Query and manipulate a graph as it were an adjacency list

##### Usage

```
# S3 method for igraph
[[(x, i, j, from, to, ..., directed = TRUE, edges = FALSE,
exact = TRUE)
```

##### Arguments

- x
The graph.

- i
Index, integer, character or logical, see details below.

- j
Index, integer, character or logical, see details below.

- from
A numeric or character vector giving vertex ids or names. Together with the

`to`

argument, it can be used to query/set a sequence of edges. See details below. This argument cannot be present together with any of the`i`

and`j`

arguments and if it is present, then the`to`

argument must be present as well.- to
A numeric or character vector giving vertex ids or names. Together with the

`from`

argument, it can be used to query/set a sequence of edges. See details below. This argument cannot be present together with any of the`i`

and`j`

arguments and if it is present, then the`from`

argument must be present as well.- ...
Additional arguments are not used currently.

- directed
Logical scalar, whether to consider edge directions in directed graphs. It is ignored for undirected graphs.

- edges
Logical scalar, whether to return edge ids.

- exact
Ignored.

##### Details

The double bracket operator indexes the (imaginary) adjacency list of the graph. This can used for the following operations:

Querying the adjacent vertices for one or more vertices:

graph[[1:3,]] graph[[,1:3]]

The first form gives the successors, the second the predessors or the 1:3 vertices. (For undirected graphs they are equivalent.)

Querying the incident edges for one or more vertices, if the

`edges`

argument is set to`TRUE`

:graph[[1:3, , edges=TRUE]] graph[[, 1:3, edges=TRUE]]

Querying the edge ids between two sets or vertices, if both indices are used. E.g.

graph[[v, w, edges=TRUE]]

gives the edge ids of all the edges that exist from vertices \(v\) to vertices \(w\).

The alternative argument names `from`

and `to`

can be used
instead of the usual `i`

and `j`

, to make the code more
readable:

graph[[from = 1:3]] graph[[from = v, to = w, edges = TRUE]]

‘`[[`

’ operators allows logical indices and negative indices
as well, with the usual R semantics.

Vertex names are also supported, so instead of a numeric vertex id a
vertex can also be given to ‘`[`

’ and ‘`[[`

’.

##### See Also

Other structural queries: `[.igraph`

;
`adjacent_vertices`

;
`are.connected`

, `are_adjacent`

;
`ecount`

, `gsize`

;
`ends`

, `get.edge`

,
`get.edges`

; `get.edge.ids`

;
`gorder`

, `vcount`

;
`head_of`

; `incident_edges`

;
`incident`

; `is.directed`

,
`is_directed`

; `neighbors`

;
`tail_of`

*Documentation reproduced from package igraph, version 1.0.1, License: GPL (>= 2)*