DiagrammeR (version 1.0.0)

add_reverse_edges_ws: Add new edges in the opposite directions of a selection of edges

Description

Add edges in the opposite direction of one or more edges available as an edge selection in a graph object of class dgr_graph. New graph edges have the opposite edge definitions as those in the selection. For example, a graph with the edge 1->2 in its active selection will gain a new 2->1 edge. There is also the option to assign a common rel grouping to the newly created edges. Upon addition of the edges, the edge selection will be retained for further selection or traversal operations.

Selections of edges can be performed using the following select_... functions: select_edges(), select_last_edge(), or select_edges_by_node_id(). Selections of edges can also be performed using the following traversal functions: trav_out_edge(), trav_in_edge(), or trav_both_edge().

Usage

add_reverse_edges_ws(graph, rel = NULL, edge_aes = NULL, edge_data = NULL)

Arguments

graph

a graph object of class dgr_graph.

rel

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

edge_aes

an optional list of named vectors comprising edge aesthetic attributes. The helper function edge_aes() is strongly recommended for use here as it contains arguments for each of the accepted edge aesthetic attributes (e.g., shape, style, penwidth, color).

edge_data

an optional list of named vectors comprising edge data attributes. The helper function edge_data() is strongly recommended for use here as it helps bind data specifically to the created edges.

Value

a graph object of class dgr_graph.

Examples

Run this code
# NOT RUN {
# Create an empty graph, add 2 nodes to it,
# and create the edge `1->2`
graph <-
  create_graph() %>%
  add_n_nodes(
    n = 2,
    type = "type_a",
    label = c("a_1", "a_2")) %>%
  add_edge(
    from = 1,
    to = 2,
    rel = "a")

# Get the graph's edges
graph %>%
  get_edge_ids()

# Select the edge and create 2 additional edges
# with the opposite definition of `1->2`, which
# is `2->1`; also, apply, different `rel` values
# (`b` and `c`)
graph <-
  graph %>%
  select_edges() %>%
  add_reverse_edges_ws(rel = "b") %>%
  add_reverse_edges_ws(rel = "c") %>%
  clear_selection()

# Get the graph's edge data frame
graph %>%
  get_edge_df()
# }

Run the code above in your browser using DataCamp Workspace