Simplify an igraph network such that consecutive linear edges are removed

simplify_igraph_network(gr, allow_duplicated_edges = TRUE,
  allow_self_loops = TRUE, force_keep = NULL, edge_points = NULL)

Arguments

gr

an igraph object

allow_duplicated_edges

Whether or not to allow duplicated edges between nodes.

allow_self_loops

Whether or not to allow self loops.

force_keep

Nodes that will not be removed under any condition

edge_points

Points that are on edges

Examples

net <- data.frame( from = 1:2, to = 2:3, length = 1, directed = TRUE, stringsAsFactors = F ) gr <- igraph::graph_from_data_frame(net) simplify_igraph_network(gr)
#> IGRAPH fb5d8dc DNW- 2 1 -- #> + attr: name (v/c), length (e/n), directed (e/l), weight (e/n) #> + edge from fb5d8dc (vertex names): #> [1] 1->3
net <- data.frame( from = c(1, 2, 3, 1), to = c(2, 3, 1, 4), length = 1, directed = TRUE, stringsAsFactors = F ) gr <- igraph::graph_from_data_frame(net) simplify_igraph_network(gr)
#> IGRAPH d14fdcb DNW- 2 2 -- #> + attr: name (v/c), length (e/n), directed (e/l), weight (e/n) #> + edges from d14fdcb (vertex names): #> [1] 1->4 1->1
net <- data.frame( from = c(1, 2, 3, 4), to = c(2, 3, 1, 5), length = 1, directed = TRUE, stringsAsFactors = F ) gr <- igraph::graph_from_data_frame(net) simplify_igraph_network(gr)
#> IGRAPH 91b7eca DNW- 3 2 -- #> + attr: name (v/c), length (e/n), directed (e/l), weight (e/n) #> + edges from 91b7eca (vertex names): #> [1] 1->1 4->5