Drop and add links in a neighbours list
droplinks.Rd
droplinks
drops links to and from or just to a region from a neighbours list. The example corresponds to Fingleton's Table 1, (1999) p. 6, for lattices 5 to 19. addlinks1
adds links from a single region to specified regions.
Arguments
- nb
a neighbours list object of class
nb
- drop
either a logical vector the length of
nb
, or a character vector of named regions corresponding tonb
's region.id attribute, or an integer vector of region numbers- sym
TRUE for removal of both "row" and "column" links, FALSE for only "row" links; when adding links, inserts links to the from region from the to regions
- from
single from region for adding links, either a character vector of length 1 of the named from region corresponding to
nb
's region.id attribute, or an integer vector of length 1 holding a region number- to
to regions, either a character vector of named from regions corresponding to
nb
's region.id attribute, or an integer vector of region numbers
Value
The function returns an object of class nb
with a list of integer vectors containing neighbour region number ids.
References
B. Fingleton (1999) Spurious spatial regression: some Monte Carlo results with a spatial unit root and spatial cointegration, Journal of Regional Science 39, pp. 1–19.
Author
Roger Bivand Roger.Bivand@nhh.no
Examples
# \donttest{
rho <- c(0.2, 0.5, 0.95, 0.999, 1.0)
ns <- c(5, 7, 9, 11, 13, 15, 17, 19)
mns <- matrix(0, nrow=length(ns), ncol=length(rho))
rownames(mns) <- ns
colnames(mns) <- rho
mxs <- matrix(0, nrow=length(ns), ncol=length(rho))
rownames(mxs) <- ns
colnames(mxs) <- rho
for (i in 1:length(ns)) {
nblist <- cell2nb(ns[i], ns[i])
nbdropped <- droplinks(nblist, ((ns[i]*ns[i])+1)/2, sym=FALSE)
listw <- nb2listw(nbdropped, style="W", zero.policy=TRUE)
wmat <- listw2mat(listw)
for (j in 1:length(rho)) {
mat <- diag(ns[i]*ns[i]) - rho[j] * wmat
res <- diag(solve(t(mat) %*% mat))
mns[i,j] <- mean(res)
mxs[i,j] <- max(res)
}
}
#> Warning: some observations have no neighbours
#> Error in n.comp.nb(nb): n.comp.nb: recursive nodeid out of bounds
#> install spatialreg and igraph to avoid legacy issue
print(mns)
#> 0.2 0.5 0.95 0.999 1
#> 5 0 0 0 0 0
#> 7 0 0 0 0 0
#> 9 0 0 0 0 0
#> 11 0 0 0 0 0
#> 13 0 0 0 0 0
#> 15 0 0 0 0 0
#> 17 0 0 0 0 0
#> 19 0 0 0 0 0
print(mxs)
#> 0.2 0.5 0.95 0.999 1
#> 5 0 0 0 0 0
#> 7 0 0 0 0 0
#> 9 0 0 0 0 0
#> 11 0 0 0 0 0
#> 13 0 0 0 0 0
#> 15 0 0 0 0 0
#> 17 0 0 0 0 0
#> 19 0 0 0 0 0
# }