These functions are tbl_graph pendants to dplyr::bind_rows()
that allows
you to grow your tbl_graph
by adding rows to either the nodes data, the
edges data, or both. As with bind_rows()
columns are matched by name and
are automatically filled with NA
if the column doesn't exist in some
instances. In the case of bind_graphs()
the graphs are automatically
converted to tbl_graph
objects prior to binding. The edges in each graph
will continue to reference the nodes in the graph where they originated,
meaning that their terminal node indexes will be shifted to match the new
index of the node in the combined graph. This means the bind_graphs()
always result in a disconnected graph. See graph_join()
for merging graphs
on common nodes.
bind_graphs(.data, ...)
bind_nodes(.data, ...)
bind_edges(.data, ..., node_key = "name")
A tbl_graph
, or a list of tbl_graph
objects (for
bind_graphs()
).
In case of bind_nodes()
and bind_edges()
data.frames to add.
In the case of bind_graphs()
objects that are convertible to tbl_graph
using as_tbl_graph()
.
The name of the column in nodes
that character represented
to
and from
columns should be matched against. If NA
the first column
is always chosen. This setting has no effect if to
and from
are given as
integers.
A tbl_graph
containing the new data
graph <- create_notable('bull')
new_graph <- create_notable('housex')
# Add nodes
graph %>% bind_nodes(data.frame(new = 1:4))
#> # A tbl_graph: 9 nodes and 5 edges
#> #
#> # An undirected simple graph with 5 components
#> #
#> # Node Data: 9 × 1 (active)
#> new
#> <int>
#> 1 NA
#> 2 NA
#> 3 NA
#> 4 NA
#> 5 NA
#> 6 1
#> 7 2
#> 8 3
#> 9 4
#> #
#> # Edge Data: 5 × 2
#> from to
#> <int> <int>
#> 1 1 2
#> 2 1 3
#> 3 2 3
#> # ℹ 2 more rows
# Add edges
graph %>% bind_edges(data.frame(from = 1, to = 4:5))
#> # A tbl_graph: 5 nodes and 7 edges
#> #
#> # An undirected simple graph with 1 component
#> #
#> # Node Data: 5 × 0 (active)
#> #
#> # Edge Data: 7 × 2
#> from to
#> <int> <int>
#> 1 1 2
#> 2 1 3
#> 3 2 3
#> # ℹ 4 more rows
# Add graphs
graph %>% bind_graphs(new_graph)
#> # A tbl_graph: 10 nodes and 13 edges
#> #
#> # An undirected simple graph with 2 components
#> #
#> # Node Data: 10 × 0 (active)
#> #
#> # Edge Data: 13 × 2
#> from to
#> <int> <int>
#> 1 1 2
#> 2 1 3
#> 3 2 3
#> # ℹ 10 more rows