You can extract the edge information using data.frame()
on just the edges. You can replace the example tidygraph object I've named tg
with your tidygraph object name and the code below should work for you.
library(igraph)
library(tidygraph)
library(tibble)
# https://tidygraph.data-imaginist.com/reference/tbl_graph.html
rstat_nodes <- data.frame(name = c("Hadley", "David", "Romain", "Julia"))
rstat_edges <- data.frame(from = c(1, 1, 1, 2, 3, 3, 4, 4, 4),
to = c(2, 3, 4, 1, 1, 2, 1, 2, 3),
weight = c(1:9))
tg <- tbl_graph(nodes = rstat_nodes, edges = rstat_edges)
tg
#> # A tbl_graph: 4 nodes and 9 edges
#> #
#> # A directed simple graph with 1 component
#> #
#> # Node Data: 4 x 1 (active)
#> name
#> <fct>
#> 1 Hadley
#> 2 David
#> 3 Romain
#> 4 Julia
#> #
#> # Edge Data: 9 x 3
#> from to weight
#> <int> <int> <int>
#> 1 1 2 1
#> 2 1 3 2
#> 3 1 4 3
#> # ... with 6 more rows
# Get edge information ----
edge_list <-
tg %>%
activate(edges) %>%
data.frame()
edge_list
#> from to weight
#> 1 1 2 1
#> 2 1 3 2
#> 3 1 4 3
#> 4 2 1 4
#> 5 3 1 5
#> 6 3 2 6
#> 7 4 1 7
#> 8 4 2 8
#> 9 4 3 9
But if you also want the names in there as well, here is some code to simply extract the node information as well and join in the data together.
# Separate out edges and node data frames
tg_nodes <-
tg %>%
activate(nodes) %>%
data.frame() %>%
rownames_to_column("rowid") %>%
mutate(rowid = as.integer(rowid))
tg_edges <-
tg %>%
activate(edges) %>%
data.frame()
named_edge_list <-
tg_edges %>%
# Rename from nodes
left_join(tg_nodes, by = c("from" = "rowid")) %>%
select(-from) %>% # Remove unneeded column
rename(from = name) %>% # Rename column with names now
# Rename to nodes
left_join(tg_nodes, by = c("to" = "rowid")) %>%
select(-to) %>% # Remove unneeded column
rename(to = name) %>% # Rename column with names now
# Cleaning up
select(from, to, weight)
named_edge_list
#> from to weight
#> 1 Hadley David 1
#> 2 Hadley Romain 2
#> 3 Hadley Julia 3
#> 4 David Hadley 4
#> 5 Romain Hadley 5
#> 6 Romain David 6
#> 7 Julia Hadley 7
#> 8 Julia David 8
#> 9 Julia Romain 9
Created on 2020-09-21 by the reprex package (v0.3.0)