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.
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.
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:
V()
,
as_ids()
,
igraph-es-attributes
,
igraph-es-indexing
,
igraph-es-indexing2
,
igraph-vs-attributes
,
igraph-vs-indexing
,
igraph-vs-indexing2
,
print.igraph.es()
,
print.igraph.vs()
Examples
# Edges of an unnamed graph
g <- make_ring(10)
E(g)
#> + 10/10 edges from b527d24:
#> [1] 1-- 2 2-- 3 3-- 4 4-- 5 5-- 6 6-- 7 7-- 8 8-- 9 9--10 1--10
# Edges of a named graph
g2 <- make_ring(10) %>%
set_vertex_attr("name", value = letters[1:10])
E(g2)
#> + 10/10 edges from 59220c5 (vertex names):
#> [1] a--b b--c c--d d--e e--f f--g g--h h--i i--j a--j