Determine Neighbourhood Order Matrix from Binary Adjacency Matrix

Share:

Description

Given a square binary adjacency matrix, the function nbOrder determines the integer matrix of neighbourhood orders (shortest-path distance) using the function nblag from the spdep package.

Usage

1
nbOrder(neighbourhood, maxlag = 1)

Arguments

neighbourhood

a square, numeric or logical, and usually symmetric matrix with finite entries (and usually zeros on the diagonal) which indicates vertex adjacencies, i.e., first-order neighbourhood (interpreted as neighbourhood == 1, not >0).

maxlag

positive scalar integer specifying an upper bound for the neighbourhood order. The default (1) just returns the input neighbourhood matrix (converted to binary integer mode). maxlag is automatically trimmed to one less than the number of regions (there cannot be higher orders) and then converted to integer, thus, maxlag = Inf also works.

Value

An integer matrix of neighbourhood orders, i.e., the shortest-path distance matrix of the vertices. The dimnames of the input neighbourhood matrix are preserved.

Note

By the end, the function issues a message informing about the range of maximum neighbourhood order by region.

Author(s)

Sebastian Meyer

See Also

nblag from the spdep package, on which this wrapper depends.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
## generate adjacency matrix
set.seed(1)
n <- 6
adjmat <- matrix(0, n, n)
adjmat[lower.tri(adjmat)] <- sample(0:1, n*(n-1)/2, replace=TRUE)
adjmat <- adjmat + t(adjmat)
adjmat

## determine neighbourhood order matrix
if (requireNamespace("spdep")) {
    nbmat <- nbOrder(adjmat, maxlag=Inf)
    nbmat
}

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.