create_graph {DiagrammeR} | R Documentation

## Create a graph object

### Description

Generates a graph object with the option to use node data frames (ndfs) and/or edge data frames (edfs) to populate the initial graph.

### Usage

    create_graph(nodes_df = NULL, edges_df = NULL, directed = TRUE,
      graph_name = NULL, attr_theme = "default", write_backups = FALSE)

### Arguments

`nodes_df` | an optional data frame containing, at minimum, a column (called `id`) which contains node IDs for the graph. Additional columns (node attributes) can be included with values for the named node attribute.
`edges_df` | an optional data frame containing, at minimum, two columns (called `from` and `to`) where node IDs are provided. Additional columns (edge attributes) can be included with values for the named edge attribute.
`directed` | with `TRUE` (the default) or `FALSE`, either directed or undirected edge operations will be generated, respectively.
`graph_name` | an optional string for labeling the graph object.
`attr_theme` | the theme (i.e., collection of `graph`, `node`, and `edge` global graph attributes) to use for this graph. The default theme is called `default`. If this is set to `NULL` then no global graph attributes will be applied to the graph upon creation.
`write_backups` | an option to write incremental backups of changing graph states to disk. If `TRUE`, a subdirectory within the working directory will be created and used to store `RDS` files. The default value is `FALSE` so one has to opt in to use this functionality.

### Value

a graph object of class `dgr_graph`.

### Examples

    # With `create_graph()` we can
    # simply create an empty graph (and
    # add in nodes and edges later
    # with other functions)
    graph <- create_graph()

    # A graph can be created with
    # nodes and without having any edges;
    # this can be done in 2 steps:
    # 1. create a node data frame (ndf)
    #    using `create_node_df()`
    ndf <-
      create_node_df(n = 4)

    # 2. create a new graph object with
    #    `create_graph()` and then pass
    #    in the ndf to `nodes_df`
    graph <-
      create_graph(
        nodes_df = ndf)

    # Get information on the graph's nodes
    graph %>%
      get_node_info()

    # You can create a similar graph with
    # just nodes but also providing a
    # range of attributes for the nodes
    # (e.g., types, labels, or arbitrary
    # 'values')
    ndf <-
      create_node_df(
        n = 4,
        label = TRUE,
        type = c("type_1", "type_1",
                 "type_5", "type_2"),
        shape = c("circle", "circle",
                  "rectangle", "rectangle"),
        values = c(3.5, 2.6, 9.4, 2.7))

    graph <-
      create_graph(nodes_df = ndf)

    # Get information on the graph's
    # internal node data frame (ndf)
    graph %>%
      get_node_df()

    # A graph can also be created by
    # specifying both the nodes and
    # edges; create an edge data frame
    # (edf) using the `create_edge_df()`
    # function:
    edf <-
      create_edge_df(
        from = c(1, 2, 3),
        to = c(4, 3, 1),
        rel = "leading_to",
        values = c(7.3, 2.6, 8.3))

    # 2. create the graph object with
    #    `create_graph()` and pass in
    #    the ndf and edf objects
    graph <-
      create_graph(
        nodes_df = ndf,
        edges_df = edf)

    # Get information on the graph's
    # internal edge data frame (edf)
    graph %>%
      get_edge_df()

    # Get information on the graph's
    # internal node data frame (ndf)
    graph %>%
      get_node_df()

[Package DiagrammeR version 1.0.1 Index]