Skip to contents

Add n new nodes to a graph object of class dgr_graph which are clones of a node already in the graph. All node attributes are preserved except for the node label attribute (to maintain the uniqueness of non-NA node label values). A vector of node label can be provided to bind new labels to the cloned nodes.

Usage

add_n_node_clones(graph, n, node, label = NULL)

Arguments

graph

A graph object of class dgr_graph.

n

The number of node clones to add to the graph.

node

A node ID corresponding to the graph node to be cloned.

label

An optional vector of node label values. The vector length should correspond to the value set for n.

Value

A graph object of class dgr_graph.

Examples

# Create a graph with a path of
# nodes; supply `label`, `type`,
# and `value` node attributes
graph <-
  create_graph() %>%
  add_path(
    n = 3,
    label = c("d", "g", "r"),
    type = c("a", "b", "c"))

# Display the graph's internal
# node data frame
graph %>% get_node_df()
#>   id type label
#> 1  1    a     d
#> 2  2    b     g
#> 3  3    c     r

# Create 3 clones of node `1`
# but assign new node label
# values (leaving `label` as
# NULL yields NA values)
graph <-
  graph %>%
  add_n_node_clones(
    n = 3,
    node = 1,
    label = c("x", "y", "z"))

# Display the graph's internal
# node data frame: nodes `4`,
# `5`, and `6` are clones of `1`
graph %>% get_node_df()
#>   id type label
#> 1  1    a     d
#> 2  2    b     g
#> 3  3    c     r
#> 4  4    a     x
#> 5  5    a     y
#> 6  6    a     z