add_nodes_from_df_cols {DiagrammeR} | R Documentation

## 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

    # 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

[Package DiagrammeR version 0.9.2 Index]