Remove one or more undirected edges from an adjacency list and return the modified list.
subtract_edge(adj, v1, v2, ids = NULL, zero = TRUE)List of neighbors, one entry per vertex.
vector of vertex identifiers for the first vertex. Can be an
integer index or a value to look up in ids, if that argument is provided.
If more than one identifier is present, disconnects each to corresponding
entry in v2, if an edge exists.
vector of vertex identifiers for the second vertex. Can be an
integer index or a value to look up in ids, if that argument is provided.
If more than one identifier is present, disconnects each to corresponding
entry in v2, if an edge exists.
Optional identifier vector used to look up row indices. If
provided, each entry in v1 and v2 must match exactly one entry.
Logical. TRUE when the adjacency list stores zero-based neighbor
indices and FALSE when it stores one-based indices.
Adjacency list with the requested edges removed symmetrically.
data(towns)
adj <- adjacency(towns)
subtract_edge(adj, 2, 3)
#> [[1]]
#> [1] 3 4 6
#>
#> [[2]]
#> [1] 4
#>
#> [[3]]
#> [1] 3 5
#>
#> [[4]]
#> [1] 0 4 2 6 5
#>
#> [[5]]
#> [1] 0 1 3 5
#>
#> [[6]]
#> [1] 3 4 2 6
#>
#> [[7]]
#> [1] 0 3 5
#>
subtract_edge(adj, "West Haverstraw", "Stony Point", towns$MUNI)
#> [[1]]
#> [1] 3 4 6
#>
#> [[2]]
#> [1] 4
#>
#> [[3]]
#> [1] 3 5
#>
#> [[4]]
#> [1] 0 4 2 6
#>
#> [[5]]
#> [1] 0 1 3 5
#>
#> [[6]]
#> [1] 4 2 6
#>
#> [[7]]
#> [1] 0 3 5
#>