Create graphs from adjacency listsSource:
An adjacency list is a list of numeric vectors, containing the neighbor vertices for each vertex. This function creates an igraph graph object from such a list.
graph_from_adj_list( adjlist, mode = c("out", "in", "all", "total"), duplicate = TRUE )
The adjacency list. It should be consistent, i.e. the maximum throughout all vectors in the list must be less than the number of vectors (=the number of vertices in the graph).
Character scalar, it specifies whether the graph to create is undirected (‘all’ or ‘total’) or directed; and in the latter case, whether it contains the outgoing (‘out’) or the incoming (‘in’) neighbors of the vertices.
Logical scalar. For undirected graphs it gives whether edges are included in the list twice. E.g. if it is
TRUEthen for an undirected
Aincluded in the neighbors of
Bto be included in the neighbors of
This argument is ignored if
Adjacency lists are handy if you intend to do many (small) modifications to a graph. In this case adjacency lists are more efficient than igraph graphs.
The idea is that you convert your graph to an adjacency list by
as_adj_list(), do your modifications to the graphs and finally
create again an igraph graph by calling
Gabor Csardi firstname.lastname@example.org
## Directed g <- make_ring(10, directed = TRUE) al <- as_adj_list(g, mode = "out") g2 <- graph_from_adj_list(al) graph.isomorphic(g, g2) #>  TRUE ## Undirected g <- make_ring(10) al <- as_adj_list(g) g2 <- graph_from_adj_list(al, mode = "all") graph.isomorphic(g, g2) #>  TRUE ecount(g2) #>  10 g3 <- graph_from_adj_list(al, mode = "all", duplicate = FALSE) ecount(g3) #>  20 which_multiple(g3) #>  FALSE FALSE TRUE FALSE TRUE FALSE TRUE FALSE TRUE FALSE TRUE FALSE #>  TRUE FALSE TRUE FALSE TRUE FALSE TRUE TRUE