Given an sf geometry of type POLYGON
or MULTIPOLYGON
identify contiguity based neighbors.
Arguments
- geometry
an sf or sfc object.
- queen
default
TRUE
. For more see?spdep::poly2nb
- ...
additional arguments passed to
spdep::poly2nb()
Details
Utilizes spdep::poly2nb()
See also
Other neighbors:
st_dist_band()
,
st_knn()
Examples
# on basic polygons
geo <- sf::st_geometry(guerry)
st_contiguity(geo)
#> Neighbour list object:
#> Number of regions: 85
#> Number of nonzero links: 420
#> Percentage nonzero weights: 5.813149
#> Average number of links: 4.941176
if (requireNamespace("dplyr", quietyl = TRUE)) {
# in a pipe
library(magrittr)
guerry %>%
dplyr::mutate(nb = st_contiguity(geometry), .before = 1)
}
#> Simple feature collection with 85 features and 27 fields
#> Geometry type: MULTIPOLYGON
#> Dimension: XY
#> Bounding box: xmin: 47680 ymin: 1703258 xmax: 1031401 ymax: 2677441
#> CRS: NA
#> # A tibble: 85 × 28
#> nb code_dept count ave_id_geo dept region department crime_pers
#> * <nb> <fct> <dbl> <dbl> <int> <fct> <fct> <int>
#> 1 <int [4]> 01 1 49 1 E Ain 28870
#> 2 <int [6]> 02 1 812 2 N Aisne 26226
#> 3 <int [6]> 03 1 1418 3 C Allier 26747
#> 4 <int [4]> 04 1 1603 4 E Basses-Alpes 12935
#> 5 <int [3]> 05 1 1802 5 E Hautes-Alpes 17488
#> 6 <int [7]> 07 1 2249 7 S Ardeche 9474
#> 7 <int [3]> 08 1 35395 8 N Ardennes 35203
#> 8 <int [3]> 09 1 2526 9 S Ariege 6173
#> 9 <int [5]> 10 1 34410 10 E Aube 19602
#> 10 <int [5]> 11 1 2807 11 S Aude 15647
#> # ℹ 75 more rows
#> # ℹ 20 more variables: crime_prop <int>, literacy <int>, donations <int>,
#> # infants <int>, suicides <int>, main_city <ord>, wealth <int>,
#> # commerce <int>, clergy <int>, crime_parents <int>, infanticide <int>,
#> # donation_clergy <int>, lottery <int>, desertion <int>, instruction <int>,
#> # prostitutes <int>, distance <dbl>, area <int>, pop1831 <dbl>,
#> # geometry <MULTIPOLYGON>