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.
add_nodes_from_df_cols(
graph,
df,
columns,
type = NULL,
keep_duplicates = FALSE
)A graph object of class dgr_graph.
A data frame from which values will be taken as new nodes for the graph.
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.
An optional, single-length character vector that provides a group identifier for the nodes to be added to the graph.
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 to FALSE.
A graph object of class dgr_graph.
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()
# 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