delete_edge {DiagrammeR} | R Documentation

## Delete an edge from an existing graph object

### Description

From a graph object of class `dgr_graph`, delete an existing edge by specifying either: (1) a pair of node IDs corresponding to the edge (keeping into consideration the direction of the edge in a directed graph), or (2) an edge ID.

### Usage

    delete_edge(graph, from = NULL, to = NULL, id = NULL)

### Arguments

`graph` | a graph object of class `dgr_graph`.
`from` | a node ID from which the edge to be removed is outgoing. If an edge ID is provided to `id`, then this argument is ignored. There is the option to use a node `label` value here (and this must correspondingly also be done for the `to` argument) for defining node connections. Note that this is only possible if all nodes have distinct `label` values set and none exist as an empty string.
`to` | a node ID to which the edge to be removed is incoming. If an edge ID is provided to `id`, then this argument is ignored. There is the option to use a node `label` value here (and this must correspondingly also be for the `from` argument) for defining node connections. Note that this is only possible if all nodes have distinct `label` values set and none exist as an empty string.
`id` | an edge ID of the edge to be removed.

### Value

a graph object of class `dgr_graph`.

### Examples

    # Create a graph with 2 nodes
    graph <-
      create_graph() %>%
      add_n_nodes(n = 2)

    # Add an edge
    graph <-
      add_edge(
        graph = graph,
        from = 1,
        to = 2)

    # Delete the edge
    graph <-
      delete_edge(
        graph = graph,
        from = 1,
        to = 2)

    # Get the count of edges in the graph
    edge_count(graph)
    #> [1] 0

    # Create an undirected graph with
    # 2 nodes and an edge
    graph_undirected <-
      create_graph(directed = FALSE) %>%
      add_n_nodes(n = 2) %>%
      add_edge(
        from = 1,
        to = 2)

    # Delete the edge; the order of node ID
    # values provided in `from` and `to`
    # don't matter for the undirected case
    graph_undirected %>%
      delete_edge(
        from = 2,
        to = 1) %>%
      edge_count()
    #> [1] 0

    graph_undirected %>%
      delete_edge(
        from = 1,
        to = 2) %>%
      edge_count()
    #> [1] 0

    # The undirected graph has a single
    # edge with ID `1`; it can be
    # deleted by specifying `id`
    graph_undirected %>%
      delete_edge(id = 1) %>%
      edge_count()
    #> [1] 0

    # Create a directed graph with 2
    # labeled nodes and an edge
    graph_labeled_nodes <-
      create_graph() %>%
      add_n_nodes(
        n = 2,
        label = c("one", "two")) %>%
      add_edge(
        from = "one",
        to = "two")

    # Delete the edge using the node
    # labels in `from` and `to`; this
    # is analogous to creating the
    # edge using node labels
    graph_labeled_nodes %>%
      delete_edge(
        from = "one",
        to = "two") %>%
      edge_count()
    #> [1] 0

[Package DiagrammeR version 0.9.2 Index]