Add nodes from distinct values in data frame columns
Source:R/add_nodes_from_df_cols.R
add_nodes_from_df_cols.Rd
Add 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