DiagrammeR (version 0.9.2)

add_nodes_from_df_cols: Add nodes from distinct values in data frame columns

Description

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.

Usage

add_nodes_from_df_cols(graph, df, columns, type = NULL,
  keep_duplicates = FALSE)

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 any 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.

Value

a graph object of class dgr_graph.

Examples

Run this code
# NOT RUN {
# 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 a 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
# }

Run the code above in your browser using DataCamp Workspace