These functions combine an appropriate `_census()`

function
together with methods for calculating the hierarchical clusters
provided by a certain distance calculation.

A `plot()`

method exists for investigating the dendrogram
of the hierarchical cluster and showing the returned cluster
assignment.

```
node_equivalence(
.data,
census,
k = c("silhouette", "elbow", "strict"),
cluster = c("hierarchical", "concor"),
distance = c("euclidean", "maximum", "manhattan", "canberra", "binary", "minkowski"),
range = 8L
)
node_structural_equivalence(
.data,
k = c("silhouette", "elbow", "strict"),
cluster = c("hierarchical", "concor"),
distance = c("euclidean", "maximum", "manhattan", "canberra", "binary", "minkowski"),
range = 8L
)
node_regular_equivalence(
.data,
k = c("silhouette", "elbow", "strict"),
cluster = c("hierarchical", "concor"),
distance = c("euclidean", "maximum", "manhattan", "canberra", "binary", "minkowski"),
range = 8L
)
node_automorphic_equivalence(
.data,
k = c("silhouette", "elbow", "strict"),
cluster = c("hierarchical", "concor"),
distance = c("euclidean", "maximum", "manhattan", "canberra", "binary", "minkowski"),
range = 8L
)
```

- .data
An object of a

`{manynet}`

-consistent class:matrix (adjacency or incidence) from

`{base}`

Redgelist, a data frame from

`{base}`

R or tibble from`{tibble}`

igraph, from the

`{igraph}`

packagenetwork, from the

`{network}`

packagetbl_graph, from the

`{tidygraph}`

package

- census
A matrix returned by a

`node_*_census()`

function.- k
Typically a character string indicating which method should be used to select the number of clusters to return. By default

`"silhouette"`

, other options include`"elbow"`

and`"strict"`

.`"strict"`

returns classes with members only when strictly equivalent.`"silhouette"`

and`"elbow"`

select classes based on the distance between clusters or between nodes within a cluster. Fewer, identifiable letters, e.g.`"e"`

for elbow, is sufficient. Alternatively, if`k`

is passed an integer, e.g.`k = 3`

, then all selection routines are skipped in favour of this number of clusters.- cluster
Character string indicating whether clusters should be clustered hierarchically (

`"hierarchical"`

) or through convergence of correlations (`"concor"`

). Fewer, identifiable letters, e.g.`"c"`

for CONCOR, is sufficient.- distance
Character string indicating which distance metric to pass on to

`stats::dist`

. By default`"euclidean"`

, but other options include`"maximum"`

,`"manhattan"`

,`"canberra"`

,`"binary"`

, and`"minkowski"`

. Fewer, identifiable letters, e.g.`"e"`

for Euclidean, is sufficient.- range
Integer indicating the maximum number of (k) clusters to evaluate. Ignored when

`k = "strict"`

or a discrete number is given for`k`

.

`node_equivalence()`

: Returns nodes' membership in according to their equivalence with respective to some census/class`node_structural_equivalence()`

: Returns nodes' membership in structurally equivalent classes`node_regular_equivalence()`

: Returns nodes' membership in regularly equivalent classes`node_automorphic_equivalence()`

: Returns nodes' membership in automorphically equivalent classes

Other memberships:
`community`

,
`components()`

,
`core`

```
# \donttest{
(nse <- node_structural_equivalence(mpn_elite_usa_advice))
#> Albright Argyros Armitage Curry Fukuyama Gray Greenberg Hills Kissinger
#> 1 1 2 2 1 1 1 2 2 2
#> # ... with 5 more values from this nodeset unprinted. Use `print(..., n = Inf)` to print all values.
#> ACUS AEI ASPEN CATO CFR CGD CNAS CNI CSIS EWI FPRI GMFUS HOOVER
#> 1 3 4 5 6 5 6 5 3 3 4 3 3 3
#> # ... with 7 more values from this nodeset unprinted. Use `print(..., n = Inf)` to print all values.
plot(nse)
# }
# \donttest{
(nre <- node_regular_equivalence(mpn_elite_usa_advice,
cluster = "concor"))
#> Albright Argyros Armitage Curry Fukuyama Gray Greenberg Hills Kissinger
#> 1 1 2 2 1 1 3 1 4 2
#> # ... with 5 more values from this nodeset unprinted. Use `print(..., n = Inf)` to print all values.
#> ACUS AEI ASPEN CATO CFR CGD CNAS CNI CSIS EWI FPRI GMFUS HOOVER
#> 1 5 6 6 6 1 6 7 5 8 6 6 6 6
#> # ... with 7 more values from this nodeset unprinted. Use `print(..., n = Inf)` to print all values.
plot(nre)
# }
# \donttest{
(nae <- node_automorphic_equivalence(mpn_elite_usa_advice,
k = "elbow"))
#> Albright Argyros Armitage Curry Fukuyama Gray Greenberg Hills Kissinger
#> 1 1 1 2 3 3 4 3 1 2
#> # ... with 5 more values from this nodeset unprinted. Use `print(..., n = Inf)` to print all values.
#> ACUS AEI ASPEN CATO CFR CGD CNAS CNI CSIS EWI FPRI GMFUS HOOVER
#> 1 4 3 1 4 1 4 2 1 1 4 2 2 1
#> # ... with 7 more values from this nodeset unprinted. Use `print(..., n = Inf)` to print all values.
plot(nae)
# }
```