Create adjacency lists from a graph, either for adjacent edges or for neighboring vertices
Arguments
- graph
The input graph.
- mode
Character scalar, it gives what kind of adjacent edges/vertices to include in the lists. ‘
out’ is for outgoing edges/vertices, ‘in’ is for incoming edges/vertices, ‘all’ is for both. This argument is ignored for undirected graphs.- loops
Character scalar, one of
"ignore"(to omit loops),"twice"(to include loop edges twice) and"once"(to include them once)."twice"is not allowed for directed graphs and will be replaced with"once".- multiple
Logical scalar, set to
FALSEto use only one representative of each set of parallel edges.
Value
A list of igraph.vs or a list of numeric vectors depending on
the value of igraph_opt("return.vs.es"), see details for performance
characteristics.
Details
as_adj_list() returns a list of numeric vectors, which include the IDs
of neighbor vertices (according to the mode argument) of all
vertices.
as_adj_edge_list() returns a list of numeric vectors, which include the
IDs of adjacent edges (according to the mode argument) of all
vertices.
If igraph_opt("return.vs.es") is true (default), the numeric
vectors of the adjacency lists are coerced to igraph.vs, this can be
a very expensive operation on large graphs.
Author
Gabor Csardi csardi.gabor@gmail.com
Examples
g <- make_ring(10)
as_adj_list(g)
#> [[1]]
#> ── <vertex sequence> 2/10 · from 54d57e3 ───────────────────────────────────────
#> [1] 2 10
#>
#> [[2]]
#> ── <vertex sequence> 2/10 · from 54d57e3 ───────────────────────────────────────
#> [1] 1 3
#>
#> [[3]]
#> ── <vertex sequence> 2/10 · from 54d57e3 ───────────────────────────────────────
#> [1] 2 4
#>
#> [[4]]
#> ── <vertex sequence> 2/10 · from 54d57e3 ───────────────────────────────────────
#> [1] 3 5
#>
#> [[5]]
#> ── <vertex sequence> 2/10 · from 54d57e3 ───────────────────────────────────────
#> [1] 4 6
#>
#> [[6]]
#> ── <vertex sequence> 2/10 · from 54d57e3 ───────────────────────────────────────
#> [1] 5 7
#>
#> [[7]]
#> ── <vertex sequence> 2/10 · from 54d57e3 ───────────────────────────────────────
#> [1] 6 8
#>
#> [[8]]
#> ── <vertex sequence> 2/10 · from 54d57e3 ───────────────────────────────────────
#> [1] 7 9
#>
#> [[9]]
#> ── <vertex sequence> 2/10 · from 54d57e3 ───────────────────────────────────────
#> [1] 8 10
#>
#> [[10]]
#> ── <vertex sequence> 2/10 · from 54d57e3 ───────────────────────────────────────
#> [1] 1 9
#>
as_adj_edge_list(g)
#> [[1]]
#> ── <edge sequence> 2/10 · from 54d57e3 ─────────────────────────────────────────
#> [1] 1 ─ 2 1 ─ 10
#>
#> [[2]]
#> ── <edge sequence> 2/10 · from 54d57e3 ─────────────────────────────────────────
#> [1] 1 ─ 2 2 ─ 3
#>
#> [[3]]
#> ── <edge sequence> 2/10 · from 54d57e3 ─────────────────────────────────────────
#> [1] 2 ─ 3 3 ─ 4
#>
#> [[4]]
#> ── <edge sequence> 2/10 · from 54d57e3 ─────────────────────────────────────────
#> [1] 3 ─ 4 4 ─ 5
#>
#> [[5]]
#> ── <edge sequence> 2/10 · from 54d57e3 ─────────────────────────────────────────
#> [1] 4 ─ 5 5 ─ 6
#>
#> [[6]]
#> ── <edge sequence> 2/10 · from 54d57e3 ─────────────────────────────────────────
#> [1] 5 ─ 6 6 ─ 7
#>
#> [[7]]
#> ── <edge sequence> 2/10 · from 54d57e3 ─────────────────────────────────────────
#> [1] 6 ─ 7 7 ─ 8
#>
#> [[8]]
#> ── <edge sequence> 2/10 · from 54d57e3 ─────────────────────────────────────────
#> [1] 7 ─ 8 8 ─ 9
#>
#> [[9]]
#> ── <edge sequence> 2/10 · from 54d57e3 ─────────────────────────────────────────
#> [1] 8 ─ 9 9 ─ 10
#>
#> [[10]]
#> ── <edge sequence> 2/10 · from 54d57e3 ─────────────────────────────────────────
#> [1] 1 ─ 10 9 ─ 10
#>
