These functions implement logical tests for various network features.

  • is_connected() tests whether network is strongly connected, or weakly connected if undirected.

  • is_perfect_matching() tests whether there is a matching for a network that covers every node in the network.

  • is_eulerian() tests whether there is a Eulerian path for a network where that path passes through every tie exactly once.

  • is_acyclic() tests whether network is a directed acyclic graph.

  • is_aperiodic() tests whether network is aperiodic.

is_connected(.data)

is_perfect_matching(.data, mark = "type")

is_eulerian(.data)

is_acyclic(.data)

is_aperiodic(.data, max_path_length = 4)

Source

https://stackoverflow.com/questions/55091438/r-igraph-find-all-cycles

Arguments

.data

An object of a {manynet}-consistent class:

  • matrix (adjacency or incidence) from {base} R

  • edgelist, a data frame from {base} R or tibble from {tibble}

  • igraph, from the {igraph} package

  • network, from the {network} package

  • tbl_graph, from the {tidygraph} package

mark

A logical vector marking two types or modes. By default "type".

max_path_length

Maximum path length considered. If negative, paths of all lengths are considered. By default 4, to avoid potentially very long computation times.

Value

TRUE if the condition is met, or FALSE otherwise.

is_connected

To test weak connection on a directed network, please see to_undirected().

is_perfect_matching

For two-mode or bipartite networks, to_matching() is used to identify whether a perfect matching is possible. For one-mode networks, we use the Tutte theorem. Note that currently only subgraphs with cutpoints removed are tested, and not all possible subgraphs. This is to avoid computationally expensive combinatorial operations, but may come at the cost of some edge cases where a one-mode network cannot perfectly match as suggested.

References

Tutte, W. T. (1950). "The factorization of locally finite graphs". Canadian Journal of Mathematics. 2: 44–49. doi:10.4153/cjm-1950-005-2

See also

Other marking: is(), is_format

Examples

is_connected(ison_southern_women)
#> [1] TRUE
is_perfect_matching(ison_southern_women)
#> [1] FALSE
is_eulerian(ison_brandes)
#> [1] FALSE
is_acyclic(ison_algebra)
#> [1] FALSE
is_aperiodic(ison_algebra)
#> [1] TRUE