# E

##### Edges of a graph

An edge sequence is a vector containing numeric edge ids, with a special class attribute that allows custom operations: selecting subsets of edges based on attributes, or graph structure, creating the intersection, union of edges, etc.

##### Usage

`E(graph, P = NULL, path = NULL, directed = TRUE)`

##### Arguments

- graph
- The graph.
- P
- A list of vertices to select edges via pairs of vertices. The first and second vertices select the first edge, the third and fourth the second, etc.
- path
- A list of vertices, to select edges along a path. Note that this only works reliable for simple graphs. If the graph has multiple edges, one of them will be chosen arbitrarily to be included in the edge sequence.
- directed
- Whether to consider edge directions in the
`P`

argument, for directed graphs.

##### Details

Edge sequences are usually used as igraph function arguments that refer to edges of a graph.

An edge sequence is tied to the graph it refers to: it really denoted the specific edges of that graph, and cannot be used together with another graph.

An edge sequence is most often created by the `E()`

function. The
result includes edges in increasing edge id order by default (if. none
of the `P`

and `path`

arguments are used). An edge
sequence can be indexed by a numeric vector, just like a regular R
vector. See links to other edge sequence operations below.

##### Value

- An edge sequence of the graph.

##### Indexing edge sequences

Edge sequences mostly behave like regular vectors, but there are some
additional indexing operations that are specific for them;
e.g. selecting edges based on graph structure, or based on edge
attributes. See `[.igraph.es`

for details.

##### Querying or setting attributes

Edge sequences can be used to query or set attributes for the
edges in the sequence. See `$.igraph.es`

for details.

##### See Also

Other vertex and edge sequences: `$.igraph.es`

,
`$<-.igraph.es`

, `E<-`

,
`[<-.igraph.es`

,
`[[<-.igraph.es`

,
`igraph-es-attributes`

,
`igraph-es-attributes`

,
`igraph-es-attributes`

,
`igraph-es-attributes`

,
`igraph-es-attributes`

;
`$.igraph.vs`

, `$<-.igraph.vs`

,
`V<-`

, `[<-.igraph.vs`

,
`[[<-.igraph.vs`

,
`igraph-vs-attributes`

,
`igraph-vs-attributes`

,
`igraph-vs-attributes`

,
`igraph-vs-attributes`

,
`igraph-vs-attributes`

; `V`

;
`[.igraph.es`

, `%--%`

,
`%->%`

, `%<-%`

,
`igraph-es-indexing`

;
`[.igraph.vs`

,
`igraph-vs-indexing`

;
`[[.igraph.es`

,
`igraph-es-indexing2`

;
`[[.igraph.vs`

,
`igraph-vs-indexing2`

;
`print.igraph.es`

;
`print.igraph.vs`

##### Examples

```
# Edges of an unnamed graph
g <- make_ring(10)
E(g)
# Edges of a named graph
g2 <- make_ring(10) %>%
set_vertex_attr("name", value = letters[1:10])
E(g2)
```

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