Skip to contents

Create a subgraph based on a selection of nodes or edges stored in the graph object.

This function makes use of an active selection of nodes or edges (and the function ending with _ws hints at this).

Selections of nodes can be performed using the following node selection (select_*()) functions: select_nodes(), select_last_nodes_created(), select_nodes_by_degree(), select_nodes_by_id(), or select_nodes_in_neighborhood().

Selections of edges can be performed using the following edge selection (select_*()) functions: select_edges(), select_last_edges_created(), select_edges_by_edge_id(), or select_edges_by_node_id().

Selections of nodes or edges can also be performed using the following traversal (trav_*()) functions: trav_out(), trav_in(), trav_both(), trav_out_node(), trav_in_node(), trav_out_until(), trav_in_until(), trav_out_edge(), trav_in_edge(), trav_both_edge(), or trav_reverse_edge().

Usage

transform_to_subgraph_ws(graph)

Arguments

graph

A graph object of class dgr_graph.

Value

A graph object of class dgr_graph.

Examples

# Create a node data frame (ndf)
ndf <-
  create_node_df(
    n = 6,
    value =
      c(3.5, 2.6, 9.4,
        2.7, 5.2, 2.1))

# Create an edge data frame (edf)
edf <-
  create_edge_df(
    from = c(1, 2, 4, 5, 2, 6, 2),
      to = c(2, 4, 1, 3, 5, 5, 4))

# Create a graph
graph <-
  create_graph(
    nodes_df = ndf,
    edges_df = edf)

# Create a selection of nodes, this selects
# nodes `1`, `3`, and `5`
graph <-
  graph %>%
  select_nodes(
    conditions = value > 3)

# Create a subgraph based on the selection
subgraph <-
  graph %>%
  transform_to_subgraph_ws()

# Display the graph's node data frame
subgraph %>% get_node_df()
#>   id type label value
#> 1  1 <NA>  <NA>   3.5
#> 2  3 <NA>  <NA>   9.4
#> 3  5 <NA>  <NA>   5.2

# Display the graph's edge data frame
subgraph %>% get_edge_df()
#>   id from to  rel
#> 1  4    5  3 <NA>

# Create a selection of edges, this selects
# edges `1`, `2`
graph <-
  graph %>%
  clear_selection() %>%
  select_edges(
  edges = c(1,2))

# Create a subgraph based on the selection
subgraph <-
  graph %>%
  transform_to_subgraph_ws()

# Display the graph's node data frame
subgraph %>% get_node_df()
#>   id type label value
#> 1  1 <NA>  <NA>   3.5
#> 2  2 <NA>  <NA>   2.6
#> 3  4 <NA>  <NA>   2.7

# Display the graph's edge data frame
subgraph %>% get_edge_df()
#>   id from to  rel
#> 1  1    1  2 <NA>
#> 2  2    2  4 <NA>