Join new edge attribute values in a left join using a data frame. The use of a left join in this function allows for no possibility that edges in the graph might be removed after the join.
Arguments
- graph
A graph object of class
dgr_graph
.- df
The data frame to use for joining.
- by_graph
Optional specification of the column in the graph's internal edge data frame for the left join. If both
by_graph
andby_df
are not provided, then a natural join will occur if there are columns in the graph's edf and indf
with identical names.- by_df
Optional specification of the column in
df
for the left join. If bothby_graph
andby_df
are not provided, then a natural join will occur if there are columns in the graph's edf and indf
with identical names.
See also
Other edge creation and removal:
add_edge()
,
add_edge_clone()
,
add_edge_df()
,
add_edges_from_table()
,
add_edges_w_string()
,
add_forward_edges_ws()
,
add_reverse_edges_ws()
,
copy_edge_attrs()
,
create_edge_df()
,
delete_edge()
,
delete_edges_ws()
,
delete_loop_edges_ws()
,
drop_edge_attrs()
,
edge_data()
,
mutate_edge_attrs()
,
mutate_edge_attrs_ws()
,
recode_edge_attrs()
,
rename_edge_attrs()
,
rescale_edge_attrs()
,
rev_edge_dir()
,
rev_edge_dir_ws()
,
set_edge_attr_to_display()
,
set_edge_attrs()
,
set_edge_attrs_ws()
Examples
# Set a seed
suppressWarnings(RNGversion("3.5.0"))
set.seed(23)
# Create a simple graph
graph <-
create_graph() %>%
add_n_nodes(n = 5) %>%
add_edges_w_string(
edges = "1->2 1->3 2->4 2->5 3->5")
# Create a data frame with node ID values
# representing the graph edges (with `from` and `to`
# columns), and, a set of numeric values
df <-
data.frame(
from = c(1, 1, 2, 2, 3),
to = c(2, 3, 4, 5, 5),
values = rnorm(5, 5))
# Join the values in the data frame to the
# graph's edges; this works as a left join using
# identically-named columns in the graph and the df
# (in this case `from` and `to` are common to both)
graph <-
graph %>%
join_edge_attrs(
df = df)
# Get the graph's internal edf to show that the
# join has been made
graph %>% get_edge_df()
#> id from to rel values
#> 1 1 1 2 <NA> 5.996605
#> 2 2 1 3 <NA> 6.107490
#> 3 3 2 4 <NA> 4.721914
#> 4 4 2 5 <NA> 6.019205
#> 5 5 3 5 <NA> 5.045437