Skip to contents

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

Usage

nbOrder(neighbourhood, maxlag = Inf)

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 (Inf) means no truncation (but orders cannot be larger than the number of regions minus 1), whereas maxlag = 1 just returns the input neighbourhood matrix (converted to binary integer mode).

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.

Author

Sebastian Meyer

See also

nblag from the spdep package

Examples

## 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
nblags <- nbOrder(adjmat)
nblags