Creates a list of connected nodes following the graph representation of a spatial connectivity matrix.

`edges(C, unique_pairs_only = TRUE, shape)`

- C
A connectivity matrix where connection between two nodes is indicated by non-zero entries.

- unique_pairs_only
By default, only unique pairs of nodes (i, j) will be included in the output.

- shape
Optional spatial object (geometry) to which

`C`

refers. If given, the function returns an`sf`

object.

If `shape`

is missing, this returns a `data.frame`

with three columns. The first two columns (`node1`

and `node2`

) contain the indices of connected pairs of nodes; only unique pairs of nodes are included (unless `unique_pairs_only = FALSE`

). The third column (`weight`

) contains the corresponding matrix element, `C[node1, node2]`

.

If `shape`

is provided, the results are joined to an `sf`

object so the connections can be visualized.

This is used internally for `stan_icar`

, can be helpful for creating the scaling factor for BYM2 models fit with `stan_icar`

, and can be used for visualizing a spatial connectivity matrix.

```
data(sentencing)
C <- shape2mat(sentencing)
nbs <- edges(C)
head(nbs)
## similar to:
head(Matrix::summary(C))
head(Matrix::summary(shape2mat(georgia, "W")))
## add geometry for plotting
library(sf)
E <- edges(C, shape = sentencing)
g1 = st_geometry(E)
g2 = st_geometry(sentencing)
plot(g1, lwd = .2)
plot(g2, add = TRUE)
```