Add a multiple of new nodes with edges to or from one or more selected nodes

Description

Add n new nodes to or from one or more nodes available as a selection in a graph object of class dgr_graph. New graph edges will all move either from the nodes in the selection toward the newly created nodes (with the option direction = "from"), or to the selected nodes alredy in the graph (using direction = "to"). Optionally, set node type and edge rel values for all the new nodes and edges created, respectively.

Usage

1
2
add_n_nodes_ws(graph, n, direction = NULL, set_node_type = NULL,
  set_edge_rel = NULL)

Arguments

graph

a graph object of class dgr_graph that is created using create_graph.

n

the number of new nodes to attach as successor nodes to the nodes in the selection.

direction

using from will create new edges from existing nodes to the new nodes. The to option will create new edges directed toward the existing nodes.

set_node_type

an optional string to apply a type attribute to all newly created nodes.

set_edge_rel

an optional string to apply a rel attribute to all newly created edges.

Value

a graph object of class dgr_graph.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
library(magrittr)

# Create an empty graph, add a node to it, select
# that node, and then add 5 more nodes to the graph
# with edges from the original node to all of the
# new nodes
graph <-
  create_graph() %>%
  add_n_nodes(1) %>%
  select_last_node %>%
  add_n_nodes_ws(5, "from")

# Get the graph's nodes
graph %>% get_nodes
#> [1] "1" "2" "3" "4" "5" "6"

# Get the graph's edges
graph %>% get_edges
#> "1 -> 2" "1 -> 3" "1 -> 4" "1 -> 5" "1 -> 6"

# Create an empty graph, add a node to it, select
# that node, and then add 5 more nodes to the graph
# with edges toward the original node from all of
# the new nodes
graph <-
  create_graph() %>%
  add_n_nodes(1) %>%
  select_last_node %>%
  add_n_nodes_ws(5, "to")

# Get the graph's nodes
graph %>% get_nodes
#> [1] "1" "2" "3" "4" "5" "6"

# Get the graph's edges
graph %>% get_edges
#> "2 -> 1" "3 -> 1" "4 -> 1" "5 -> 1" "6 -> 1"

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.