Simplify an igraph network such that consecutive linear edges are removed
allow_self_loops = TRUE
allow_duplcated_edges = FALSE
simplify_igraph_network( gr, allow_duplicated_edges = TRUE, allow_self_loops = TRUE, force_keep = NULL, edge_points = NULL )
gr
: An igraph object, see igraph::graph()
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 conditionedge_points
: Points that are on edgesAn igraph object, or a list with an igraph object and a data frame with edge points
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) 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) 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)