Creates a list of connected nodes following the graph representation of a spatial connectivity matrix.
edges(C, unique_pairs_only = TRUE, shape)
A connectivity matrix where connection between two nodes is indicated by non-zero entries.
By default, only unique pairs of nodes (i, j) will be included in the output.
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)