# Convert graphNEL objects from the graph package to igraph

Source:`R/conversion.R`

`graph_from_graphnel.Rd`

The 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.

## See also

`as_graphnel()`

for the other direction,
`as_adj()`

, `graph_from_adjacency_matrix()`

,
`as_adj_list()`

and `graph.adjlist()`

for other
graph representations.

Other conversion:
`as.directed()`

,
`as.matrix.igraph()`

,
`as_adj_list()`

,
`as_adjacency_matrix()`

,
`as_data_frame()`

,
`as_edgelist()`

,
`as_graphnel()`

,
`as_incidence_matrix()`

,
`as_long_data_frame()`

,
`graph_from_adj_list()`

## Examples

```
if (FALSE) {
## Undirected
g <- make_ring(10)
V(g)$name <- letters[1:10]
GNEL <- as_graphnel(g)
g2 <- graph_from_graphnel(GNEL)
g2
## Directed
g3 <- make_star(10, mode = "in")
V(g3)$name <- letters[1:10]
GNEL2 <- as_graphnel(g3)
g4 <- graph_from_graphnel(GNEL2)
g4
}
```