Add nodes from distinct values in data frame columns
Source:R/add_nodes_from_df_cols.R
add_nodes_from_df_cols.RdAdd new nodes to a graph object of class dgr_graph using distinct values
from one or more columns in a data frame. The values will serve as node
labels and the number of nodes added depends on the number of distinct values
found in the specified columns.
Arguments
- graph
A graph object of class
dgr_graph.- df
A data frame from which values will be taken as new nodes for the graph.
- columns
A character vector of column names or a numeric vector of column numbers for the data frame supplied in
df. The distinct values in these columns will serve as labels for the nodes added to the graph.- type
An optional, single-length character vector that provides a group identifier for the nodes to be added to the graph.
- keep_duplicates
An option to exclude incoming nodes where the labels (i.e., values found in columns of the specified
df) match label values available in the graph's nodes. By default, this is set toFALSE.
See also
Other node creation and removal:
add_n_node_clones(),
add_n_nodes(),
add_n_nodes_ws(),
add_node(),
add_node_clones_ws(),
add_node_df(),
add_nodes_from_table(),
colorize_node_attrs(),
copy_node_attrs(),
create_node_df(),
delete_node(),
delete_nodes_ws(),
drop_node_attrs(),
join_node_attrs(),
layout_nodes_w_string(),
mutate_node_attrs(),
mutate_node_attrs_ws(),
node_data(),
recode_node_attrs(),
rename_node_attrs(),
rescale_node_attrs(),
set_node_attr_to_display(),
set_node_attr_w_fcn(),
set_node_attrs(),
set_node_attrs_ws(),
set_node_position()
Examples
# Create an empty graph
graph <- create_graph()
# Create a data frame from
# which several columns have
# values designated as graph nodes
df <-
data.frame(
col_1 = c("f", "p", "q"),
col_2 = c("q", "x", "f"),
col_3 = c(1, 5, 3),
col_4 = c("a", "v", "h"),
stringsAsFactors = FALSE)
# Add nodes from columns `col_1`
# and `col_2` from the data frame
# to the graph object
graph <-
graph %>%
add_nodes_from_df_cols(
df = df,
columns = c("col_1", "col_2"))
# Show the graph's node data
# frame; duplicate labels are
# prevented with `keep_duplicates =
# FALSE`)
graph %>% get_node_df()
#> id type label
#> 1 1 <NA> f
#> 2 2 <NA> p
#> 3 3 <NA> q
#> 4 4 <NA> x
# Add new nodes from columns 3 and 4;
# We can specify the columns by their
# numbers as well
graph <-
graph %>%
add_nodes_from_df_cols(
df = df,
columns = 3:4)
# Show the graph's node data
# frame; note that nodes didn't
# get made with columns that
# are not character class columns
graph %>% get_node_df()
#> id type label
#> 1 1 <NA> f
#> 2 2 <NA> p
#> 3 3 <NA> q
#> 4 4 <NA> x
#> 5 5 <NA> a
#> 6 6 <NA> v
#> 7 7 <NA> h