
Convert graphNEL objects from the graph package to igraph
Source:R/conversion.R
graph_from_graphnel.RdThe graphNEL class is defined in the graph package, it is another
way to represent graphs. graph_from_graphnel() takes a graphNEL
graph and converts it to an igraph graph. It handles all
graph/vertex/edge attributes. If the graphNEL graph has a vertex
attribute called ‘name’ it will be used as igraph vertex
attribute ‘name’ and the graphNEL vertex names will be
ignored.
Arguments
- graphNEL
The graphNEL graph.
- name
Logical scalar, whether to add graphNEL vertex names as an igraph vertex attribute called ‘
name’.- weight
Logical scalar, whether to add graphNEL edge weights as an igraph edge attribute called ‘
weight’. (graphNEL graphs are always weighted.)- unlist.attrs
Logical scalar. graphNEL attribute query functions return the values of the attributes in R lists, if this argument is
TRUE(the default) these will be converted to atomic vectors, whenever possible, before adding them to the igraph graph.
Details
Because graphNEL graphs poorly support multiple edges, the edge attributes of the multiple edges are lost: they are all replaced by the attributes of the first of the multiple edges.
Related documentation in the C library
get_edgelist(), adjlist(), vcount(), edges(), get_eids(), ecount()
See also
as_graphnel() for the other direction,
as_adjacency_matrix(), graph_from_adjacency_matrix(),
as_adj_list() and graph_from_adj_list() for other
graph representations.
Other conversion:
as.matrix.igraph(),
as_adj_list(),
as_adjacency_matrix(),
as_biadjacency_matrix(),
as_data_frame(),
as_directed(),
as_edgelist(),
as_graphnel(),
as_long_data_frame(),
graph_from_adj_list()
Examples
## Undirected
g <- make_ring(10)
V(g)$name <- letters[1:10]
GNEL <- as_graphnel(g)
g2 <- graph_from_graphnel(GNEL)
g2
#> IGRAPH 3370642 UNW- 10 10 -- Ring graph
#> + attr: name (g/c), mutual (g/l), circular (g/l), name (v/c), weight
#> | (e/n)
#> + edges from 3370642 (vertex names):
#> [1] a--b a--j b--c c--d d--e e--f f--g g--h h--i i--j
## Directed
g3 <- make_star(10, mode = "in")
V(g3)$name <- letters[1:10]
GNEL2 <- as_graphnel(g3)
g4 <- graph_from_graphnel(GNEL2)
g4
#> IGRAPH 84b3861 DNW- 10 9 -- In-star
#> + attr: name (g/c), mode (g/c), center (g/n), name (v/c), weight (e/n)
#> + edges from 84b3861 (vertex names):
#> [1] b->a c->a d->a e->a f->a g->a h->a i->a j->a