library(sf)
#> Linking to GEOS 3.11.0, GDAL 3.5.3, PROJ 9.1.0; sf_use_s2() is TRUE
library(tidyverse)
# 2023-12-15
# Notes to add to https://geocompr.r-universe.dev/articles/geocompkg/tidyverse-pitfalls.html
nc = st_read(system.file("shape/nc.shp", package="sf"))
#> Reading layer `nc' from data source
#> `/Users/elipousson/Library/R/arm64/4.3/library/sf/shape/nc.shp'
#> using driver `ESRI Shapefile'
#> Simple feature collection with 100 features and 14 fields
#> Geometry type: MULTIPOLYGON
#> Dimension: XY
#> Bounding box: xmin: -84.32385 ymin: 33.88199 xmax: -75.45698 ymax: 36.58965
#> Geodetic CRS: NAD27
nc_modified = nc |>
mutate(
SID_increase = SID79 > SID74
)
# select always returns a sf object
select(nc, SID74)
#> Simple feature collection with 100 features and 1 field
#> Geometry type: MULTIPOLYGON
#> Dimension: XY
#> Bounding box: xmin: -84.32385 ymin: 33.88199 xmax: -75.45698 ymax: 36.58965
#> Geodetic CRS: NAD27
#> First 10 features:
#> SID74 geometry
#> 1 1 MULTIPOLYGON (((-81.47276 3...
#> 2 0 MULTIPOLYGON (((-81.23989 3...
#> 3 5 MULTIPOLYGON (((-80.45634 3...
#> 4 1 MULTIPOLYGON (((-76.00897 3...
#> 5 9 MULTIPOLYGON (((-77.21767 3...
#> 6 7 MULTIPOLYGON (((-76.74506 3...
#> 7 0 MULTIPOLYGON (((-76.00897 3...
#> 8 0 MULTIPOLYGON (((-76.56251 3...
#> 9 4 MULTIPOLYGON (((-78.30876 3...
#> 10 1 MULTIPOLYGON (((-80.02567 3...
# select returns a 0 fields sf object when selecting the sfc column
select(nc, geometry)
#> Simple feature collection with 100 features and 0 fields
#> Geometry type: MULTIPOLYGON
#> Dimension: XY
#> Bounding box: xmin: -84.32385 ymin: 33.88199 xmax: -75.45698 ymax: 36.58965
#> Geodetic CRS: NAD27
#> First 10 features:
#> geometry
#> 1 MULTIPOLYGON (((-81.47276 3...
#> 2 MULTIPOLYGON (((-81.23989 3...
#> 3 MULTIPOLYGON (((-80.45634 3...
#> 4 MULTIPOLYGON (((-76.00897 3...
#> 5 MULTIPOLYGON (((-77.21767 3...
#> 6 MULTIPOLYGON (((-76.74506 3...
#> 7 MULTIPOLYGON (((-76.00897 3...
#> 8 MULTIPOLYGON (((-76.56251 3...
#> 9 MULTIPOLYGON (((-78.30876 3...
#> 10 MULTIPOLYGON (((-80.02567 3...
# filter can work with geometry column
nc |>
filter(
st_geometry_type(geometry) == "POINT"
)
#> Simple feature collection with 0 features and 14 fields
#> Bounding box: xmin: NA ymin: NA xmax: NA ymax: NA
#> Geodetic CRS: NAD27
#> [1] AREA PERIMETER CNTY_ CNTY_ID NAME FIPS FIPSNO
#> [8] CRESS_ID BIR74 SID74 NWBIR74 BIR79 SID79 NWBIR79
#> [15] geometry
#> <0 rows> (or 0-length row.names)
# Binary predicates return matrices which will generate a warning message even if it is one column
nc |>
filter(
st_is_within_distance(geometry, nc[1, ], dist = units::set_units(300000, "m"), sparse = FALSE)
)
#> Warning: Using one column matrices in `filter()` was deprecated in dplyr 1.1.0.
#> ℹ Please use one dimensional logical vectors instead.
#> This warning is displayed once every 8 hours.
#> Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
#> generated.
#> Simple feature collection with 73 features and 14 fields
#> Geometry type: MULTIPOLYGON
#> Dimension: XY
#> Bounding box: xmin: -84.32385 ymin: 33.94867 xmax: -77.07531 ymax: 36.58965
#> Geodetic CRS: NAD27
#> First 10 features:
#> AREA PERIMETER CNTY_ CNTY_ID NAME FIPS FIPSNO CRESS_ID BIR74 SID74
#> 1 0.114 1.442 1825 1825 Ashe 37009 37009 5 1091 1
#> 2 0.061 1.231 1827 1827 Alleghany 37005 37005 3 487 0
#> 3 0.143 1.630 1828 1828 Surry 37171 37171 86 3188 5
#> 4 0.153 2.206 1832 1832 Northampton 37131 37131 66 1421 9
#> 5 0.118 1.421 1836 1836 Warren 37185 37185 93 968 4
#> 6 0.124 1.428 1837 1837 Stokes 37169 37169 85 1612 1
#> 7 0.114 1.352 1838 1838 Caswell 37033 37033 17 1035 2
#> 8 0.153 1.616 1839 1839 Rockingham 37157 37157 79 4449 16
#> 9 0.143 1.663 1840 1840 Granville 37077 37077 39 1671 4
#> 10 0.109 1.325 1841 1841 Person 37145 37145 73 1556 4
#> NWBIR74 BIR79 SID79 NWBIR79 geometry
#> 1 10 1364 0 19 MULTIPOLYGON (((-81.47276 3...
#> 2 10 542 3 12 MULTIPOLYGON (((-81.23989 3...
#> 3 208 3616 6 260 MULTIPOLYGON (((-80.45634 3...
#> 4 1066 1606 3 1197 MULTIPOLYGON (((-77.21767 3...
#> 5 748 1190 2 844 MULTIPOLYGON (((-78.30876 3...
#> 6 160 2038 5 176 MULTIPOLYGON (((-80.02567 3...
#> 7 550 1253 2 597 MULTIPOLYGON (((-79.53051 3...
#> 8 1243 5386 5 1369 MULTIPOLYGON (((-79.53051 3...
#> 9 930 2074 4 1058 MULTIPOLYGON (((-78.74912 3...
#> 10 613 1790 4 650 MULTIPOLYGON (((-78.8068 36...
# Use as.logical to avoid passing a one-column matrix as a filter predicate
nc |>
filter(
as.logical(st_is_within_distance(geometry, nc[1, ], dist = units::set_units(300000, "m"), sparse = FALSE))
)
#> Simple feature collection with 73 features and 14 fields
#> Geometry type: MULTIPOLYGON
#> Dimension: XY
#> Bounding box: xmin: -84.32385 ymin: 33.94867 xmax: -77.07531 ymax: 36.58965
#> Geodetic CRS: NAD27
#> First 10 features:
#> AREA PERIMETER CNTY_ CNTY_ID NAME FIPS FIPSNO CRESS_ID BIR74 SID74
#> 1 0.114 1.442 1825 1825 Ashe 37009 37009 5 1091 1
#> 2 0.061 1.231 1827 1827 Alleghany 37005 37005 3 487 0
#> 3 0.143 1.630 1828 1828 Surry 37171 37171 86 3188 5
#> 4 0.153 2.206 1832 1832 Northampton 37131 37131 66 1421 9
#> 5 0.118 1.421 1836 1836 Warren 37185 37185 93 968 4
#> 6 0.124 1.428 1837 1837 Stokes 37169 37169 85 1612 1
#> 7 0.114 1.352 1838 1838 Caswell 37033 37033 17 1035 2
#> 8 0.153 1.616 1839 1839 Rockingham 37157 37157 79 4449 16
#> 9 0.143 1.663 1840 1840 Granville 37077 37077 39 1671 4
#> 10 0.109 1.325 1841 1841 Person 37145 37145 73 1556 4
#> NWBIR74 BIR79 SID79 NWBIR79 geometry
#> 1 10 1364 0 19 MULTIPOLYGON (((-81.47276 3...
#> 2 10 542 3 12 MULTIPOLYGON (((-81.23989 3...
#> 3 208 3616 6 260 MULTIPOLYGON (((-80.45634 3...
#> 4 1066 1606 3 1197 MULTIPOLYGON (((-77.21767 3...
#> 5 748 1190 2 844 MULTIPOLYGON (((-78.30876 3...
#> 6 160 2038 5 176 MULTIPOLYGON (((-80.02567 3...
#> 7 550 1253 2 597 MULTIPOLYGON (((-79.53051 3...
#> 8 1243 5386 5 1369 MULTIPOLYGON (((-79.53051 3...
#> 9 930 2074 4 1058 MULTIPOLYGON (((-78.74912 3...
#> 10 613 1790 4 650 MULTIPOLYGON (((-78.8068 36...
# discussion on performance issues w/ filter https://github.com/r-spatial/sf/issues/1889
# Geometric unary operations st_ functions work inside of mutate
nc |>
mutate(
geometry = st_centroid(geometry)
)
#> Simple feature collection with 100 features and 14 fields
#> Geometry type: POINT
#> Dimension: XY
#> Bounding box: xmin: -84.05986 ymin: 34.07671 xmax: -75.8095 ymax: 36.49111
#> Geodetic CRS: NAD27
#> First 10 features:
#> AREA PERIMETER CNTY_ CNTY_ID NAME FIPS FIPSNO CRESS_ID BIR74 SID74
#> 1 0.114 1.442 1825 1825 Ashe 37009 37009 5 1091 1
#> 2 0.061 1.231 1827 1827 Alleghany 37005 37005 3 487 0
#> 3 0.143 1.630 1828 1828 Surry 37171 37171 86 3188 5
#> 4 0.070 2.968 1831 1831 Currituck 37053 37053 27 508 1
#> 5 0.153 2.206 1832 1832 Northampton 37131 37131 66 1421 9
#> 6 0.097 1.670 1833 1833 Hertford 37091 37091 46 1452 7
#> 7 0.062 1.547 1834 1834 Camden 37029 37029 15 286 0
#> 8 0.091 1.284 1835 1835 Gates 37073 37073 37 420 0
#> 9 0.118 1.421 1836 1836 Warren 37185 37185 93 968 4
#> 10 0.124 1.428 1837 1837 Stokes 37169 37169 85 1612 1
#> NWBIR74 BIR79 SID79 NWBIR79 geometry
#> 1 10 1364 0 19 POINT (-81.49823 36.4314)
#> 2 10 542 3 12 POINT (-81.12513 36.49111)
#> 3 208 3616 6 260 POINT (-80.68573 36.41252)
#> 4 123 830 2 145 POINT (-76.02719 36.40714)
#> 5 1066 1606 3 1197 POINT (-77.41046 36.42236)
#> 6 954 1838 5 1237 POINT (-76.99472 36.36142)
#> 7 115 350 2 139 POINT (-76.23402 36.40122)
#> 8 254 594 2 371 POINT (-76.70446 36.44428)
#> 9 748 1190 2 844 POINT (-78.11042 36.39693)
#> 10 160 2038 5 176 POINT (-80.23429 36.40042)
# Computing geometric measurements works inside of mutate
nc |>
mutate(
dist = st_distance(st_centroid(geometry), nc[1, ])
)
#> Simple feature collection with 100 features and 15 fields
#> Geometry type: MULTIPOLYGON
#> Dimension: XY
#> Bounding box: xmin: -84.32385 ymin: 33.88199 xmax: -75.45698 ymax: 36.58965
#> Geodetic CRS: NAD27
#> First 10 features:
#> AREA PERIMETER CNTY_ CNTY_ID NAME FIPS FIPSNO CRESS_ID BIR74 SID74
#> 1 0.114 1.442 1825 1825 Ashe 37009 37009 5 1091 1
#> 2 0.061 1.231 1827 1827 Alleghany 37005 37005 3 487 0
#> 3 0.143 1.630 1828 1828 Surry 37171 37171 86 3188 5
#> 4 0.070 2.968 1831 1831 Currituck 37053 37053 27 508 1
#> 5 0.153 2.206 1832 1832 Northampton 37131 37131 66 1421 9
#> 6 0.097 1.670 1833 1833 Hertford 37091 37091 46 1452 7
#> 7 0.062 1.547 1834 1834 Camden 37029 37029 15 286 0
#> 8 0.091 1.284 1835 1835 Gates 37073 37073 37 420 0
#> 9 0.118 1.421 1836 1836 Warren 37185 37185 93 968 4
#> 10 0.124 1.428 1837 1837 Stokes 37169 37169 85 1612 1
#> NWBIR74 BIR79 SID79 NWBIR79 geometry dist
#> 1 10 1364 0 19 MULTIPOLYGON (((-81.47276 3... 0.00 [m]
#> 2 10 542 3 12 MULTIPOLYGON (((-81.23989 3... 13969.67 [m]
#> 3 208 3616 6 260 MULTIPOLYGON (((-80.45634 3... 49807.60 [m]
#> 4 123 830 2 145 MULTIPOLYGON (((-76.00897 3... 466586.78 [m]
#> 5 1066 1606 3 1197 MULTIPOLYGON (((-77.21767 3... 342798.12 [m]
#> 6 954 1838 5 1237 MULTIPOLYGON (((-76.74506 3... 380092.07 [m]
#> 7 115 350 2 139 MULTIPOLYGON (((-76.00897 3... 448090.87 [m]
#> 8 254 594 2 371 MULTIPOLYGON (((-76.56251 3... 405954.77 [m]
#> 9 748 1190 2 844 MULTIPOLYGON (((-78.30876 3... 280166.05 [m]
#> 10 160 2038 5 176 MULTIPOLYGON (((-80.02567 3... 90104.97 [m]
# summarise looks like it supports the .by parameter but geometry for both groups are identical
# open issue: https://github.com/r-spatial/sf/issues/2207
nc_modified_by <- nc_modified |>
summarise(
.by = SID_increase
)
# compared to group_by method
nc_modified_group_by <- nc_modified |>
group_by(SID_increase) |>
summarise()
# maps to show differences
nc_modified_by |>
ggplot() +
geom_sf(aes(fill = SID_increase))
nc_modified_group_by |>
ggplot() +
geom_sf(aes(fill = SID_increase))
# you can't use left_join, full_join, or right_join if both x and y are sf objects
withCallingHandlers(
nc |>
left_join(
nc_modified
),
error = function(cnd) {
print(cnd$message)
}
)
#> [1] "y should not have class sf; for spatial joins, use st_join"
#> Error: y should not have class sf; for spatial joins, use st_join
# Dropping geometry from y
nc |>
left_join(
st_drop_geometry(nc_modified)
)
#> Joining with `by = join_by(AREA, PERIMETER, CNTY_, CNTY_ID, NAME, FIPS, FIPSNO,
#> CRESS_ID, BIR74, SID74, NWBIR74, BIR79, SID79, NWBIR79)`
#> Simple feature collection with 100 features and 15 fields
#> Geometry type: MULTIPOLYGON
#> Dimension: XY
#> Bounding box: xmin: -84.32385 ymin: 33.88199 xmax: -75.45698 ymax: 36.58965
#> Geodetic CRS: NAD27
#> First 10 features:
#> AREA PERIMETER CNTY_ CNTY_ID NAME FIPS FIPSNO CRESS_ID BIR74 SID74
#> 1 0.114 1.442 1825 1825 Ashe 37009 37009 5 1091 1
#> 2 0.061 1.231 1827 1827 Alleghany 37005 37005 3 487 0
#> 3 0.143 1.630 1828 1828 Surry 37171 37171 86 3188 5
#> 4 0.070 2.968 1831 1831 Currituck 37053 37053 27 508 1
#> 5 0.153 2.206 1832 1832 Northampton 37131 37131 66 1421 9
#> 6 0.097 1.670 1833 1833 Hertford 37091 37091 46 1452 7
#> 7 0.062 1.547 1834 1834 Camden 37029 37029 15 286 0
#> 8 0.091 1.284 1835 1835 Gates 37073 37073 37 420 0
#> 9 0.118 1.421 1836 1836 Warren 37185 37185 93 968 4
#> 10 0.124 1.428 1837 1837 Stokes 37169 37169 85 1612 1
#> NWBIR74 BIR79 SID79 NWBIR79 SID_increase geometry
#> 1 10 1364 0 19 FALSE MULTIPOLYGON (((-81.47276 3...
#> 2 10 542 3 12 TRUE MULTIPOLYGON (((-81.23989 3...
#> 3 208 3616 6 260 TRUE MULTIPOLYGON (((-80.45634 3...
#> 4 123 830 2 145 TRUE MULTIPOLYGON (((-76.00897 3...
#> 5 1066 1606 3 1197 FALSE MULTIPOLYGON (((-77.21767 3...
#> 6 954 1838 5 1237 FALSE MULTIPOLYGON (((-76.74506 3...
#> 7 115 350 2 139 TRUE MULTIPOLYGON (((-76.00897 3...
#> 8 254 594 2 371 TRUE MULTIPOLYGON (((-76.56251 3...
#> 9 748 1190 2 844 FALSE MULTIPOLYGON (((-78.30876 3...
#> 10 160 2038 5 176 TRUE MULTIPOLYGON (((-80.02567 3...
# Dropping geometry from x and using geometry from y
nc |>
st_drop_geometry() |>
# NOTE: This method can create empty geometries
left_join(nc_modified) |>
st_as_sf()
#> Joining with `by = join_by(AREA, PERIMETER, CNTY_, CNTY_ID, NAME, FIPS, FIPSNO,
#> CRESS_ID, BIR74, SID74, NWBIR74, BIR79, SID79, NWBIR79)`
#> Simple feature collection with 100 features and 15 fields
#> Geometry type: MULTIPOLYGON
#> Dimension: XY
#> Bounding box: xmin: -84.32385 ymin: 33.88199 xmax: -75.45698 ymax: 36.58965
#> Geodetic CRS: NAD27
#> First 10 features:
#> AREA PERIMETER CNTY_ CNTY_ID NAME FIPS FIPSNO CRESS_ID BIR74 SID74
#> 1 0.114 1.442 1825 1825 Ashe 37009 37009 5 1091 1
#> 2 0.061 1.231 1827 1827 Alleghany 37005 37005 3 487 0
#> 3 0.143 1.630 1828 1828 Surry 37171 37171 86 3188 5
#> 4 0.070 2.968 1831 1831 Currituck 37053 37053 27 508 1
#> 5 0.153 2.206 1832 1832 Northampton 37131 37131 66 1421 9
#> 6 0.097 1.670 1833 1833 Hertford 37091 37091 46 1452 7
#> 7 0.062 1.547 1834 1834 Camden 37029 37029 15 286 0
#> 8 0.091 1.284 1835 1835 Gates 37073 37073 37 420 0
#> 9 0.118 1.421 1836 1836 Warren 37185 37185 93 968 4
#> 10 0.124 1.428 1837 1837 Stokes 37169 37169 85 1612 1
#> NWBIR74 BIR79 SID79 NWBIR79 SID_increase geometry
#> 1 10 1364 0 19 FALSE MULTIPOLYGON (((-81.47276 3...
#> 2 10 542 3 12 TRUE MULTIPOLYGON (((-81.23989 3...
#> 3 208 3616 6 260 TRUE MULTIPOLYGON (((-80.45634 3...
#> 4 123 830 2 145 TRUE MULTIPOLYGON (((-76.00897 3...
#> 5 1066 1606 3 1197 FALSE MULTIPOLYGON (((-77.21767 3...
#> 6 954 1838 5 1237 FALSE MULTIPOLYGON (((-76.74506 3...
#> 7 115 350 2 139 TRUE MULTIPOLYGON (((-76.00897 3...
#> 8 254 594 2 371 TRUE MULTIPOLYGON (((-76.56251 3...
#> 9 748 1190 2 844 FALSE MULTIPOLYGON (((-78.30876 3...
#> 10 160 2038 5 176 TRUE MULTIPOLYGON (((-80.02567 3...
# rename works with geometry columns
rename(
nc,
geom = geometry
)
#> Simple feature collection with 100 features and 14 fields
#> Geometry type: MULTIPOLYGON
#> Dimension: XY
#> Bounding box: xmin: -84.32385 ymin: 33.88199 xmax: -75.45698 ymax: 36.58965
#> Geodetic CRS: NAD27
#> First 10 features:
#> AREA PERIMETER CNTY_ CNTY_ID NAME FIPS FIPSNO CRESS_ID BIR74 SID74
#> 1 0.114 1.442 1825 1825 Ashe 37009 37009 5 1091 1
#> 2 0.061 1.231 1827 1827 Alleghany 37005 37005 3 487 0
#> 3 0.143 1.630 1828 1828 Surry 37171 37171 86 3188 5
#> 4 0.070 2.968 1831 1831 Currituck 37053 37053 27 508 1
#> 5 0.153 2.206 1832 1832 Northampton 37131 37131 66 1421 9
#> 6 0.097 1.670 1833 1833 Hertford 37091 37091 46 1452 7
#> 7 0.062 1.547 1834 1834 Camden 37029 37029 15 286 0
#> 8 0.091 1.284 1835 1835 Gates 37073 37073 37 420 0
#> 9 0.118 1.421 1836 1836 Warren 37185 37185 93 968 4
#> 10 0.124 1.428 1837 1837 Stokes 37169 37169 85 1612 1
#> NWBIR74 BIR79 SID79 NWBIR79 geom
#> 1 10 1364 0 19 MULTIPOLYGON (((-81.47276 3...
#> 2 10 542 3 12 MULTIPOLYGON (((-81.23989 3...
#> 3 208 3616 6 260 MULTIPOLYGON (((-80.45634 3...
#> 4 123 830 2 145 MULTIPOLYGON (((-76.00897 3...
#> 5 1066 1606 3 1197 MULTIPOLYGON (((-77.21767 3...
#> 6 954 1838 5 1237 MULTIPOLYGON (((-76.74506 3...
#> 7 115 350 2 139 MULTIPOLYGON (((-76.00897 3...
#> 8 254 594 2 371 MULTIPOLYGON (((-76.56251 3...
#> 9 748 1190 2 844 MULTIPOLYGON (((-78.30876 3...
#> 10 160 2038 5 176 MULTIPOLYGON (((-80.02567 3...
# rename is the same as this
st_set_geometry(nc, "geom")
#> Simple feature collection with 100 features and 14 fields
#> Geometry type: MULTIPOLYGON
#> Dimension: XY
#> Bounding box: xmin: -84.32385 ymin: 33.88199 xmax: -75.45698 ymax: 36.58965
#> Geodetic CRS: NAD27
#> First 10 features:
#> AREA PERIMETER CNTY_ CNTY_ID NAME FIPS FIPSNO CRESS_ID BIR74 SID74
#> 1 0.114 1.442 1825 1825 Ashe 37009 37009 5 1091 1
#> 2 0.061 1.231 1827 1827 Alleghany 37005 37005 3 487 0
#> 3 0.143 1.630 1828 1828 Surry 37171 37171 86 3188 5
#> 4 0.070 2.968 1831 1831 Currituck 37053 37053 27 508 1
#> 5 0.153 2.206 1832 1832 Northampton 37131 37131 66 1421 9
#> 6 0.097 1.670 1833 1833 Hertford 37091 37091 46 1452 7
#> 7 0.062 1.547 1834 1834 Camden 37029 37029 15 286 0
#> 8 0.091 1.284 1835 1835 Gates 37073 37073 37 420 0
#> 9 0.118 1.421 1836 1836 Warren 37185 37185 93 968 4
#> 10 0.124 1.428 1837 1837 Stokes 37169 37169 85 1612 1
#> NWBIR74 BIR79 SID79 NWBIR79 geom
#> 1 10 1364 0 19 MULTIPOLYGON (((-81.47276 3...
#> 2 10 542 3 12 MULTIPOLYGON (((-81.23989 3...
#> 3 208 3616 6 260 MULTIPOLYGON (((-80.45634 3...
#> 4 123 830 2 145 MULTIPOLYGON (((-76.00897 3...
#> 5 1066 1606 3 1197 MULTIPOLYGON (((-77.21767 3...
#> 6 954 1838 5 1237 MULTIPOLYGON (((-76.74506 3...
#> 7 115 350 2 139 MULTIPOLYGON (((-76.00897 3...
#> 8 254 594 2 371 MULTIPOLYGON (((-76.56251 3...
#> 9 748 1190 2 844 MULTIPOLYGON (((-78.30876 3...
#> 10 160 2038 5 176 MULTIPOLYGON (((-80.02567 3...
# distinct with a geometry column returns an sf object
nc |>
distinct(geometry)
#> Simple feature collection with 100 features and 0 fields
#> Geometry type: MULTIPOLYGON
#> Dimension: XY
#> Bounding box: xmin: -84.32385 ymin: 33.88199 xmax: -75.45698 ymax: 36.58965
#> Geodetic CRS: NAD27
#> First 10 features:
#> geometry
#> 1 MULTIPOLYGON (((-81.47276 3...
#> 2 MULTIPOLYGON (((-81.23989 3...
#> 3 MULTIPOLYGON (((-80.45634 3...
#> 4 MULTIPOLYGON (((-76.00897 3...
#> 5 MULTIPOLYGON (((-77.21767 3...
#> 6 MULTIPOLYGON (((-76.74506 3...
#> 7 MULTIPOLYGON (((-76.00897 3...
#> 8 MULTIPOLYGON (((-76.56251 3...
#> 9 MULTIPOLYGON (((-78.30876 3...
#> 10 MULTIPOLYGON (((-80.02567 3...
# distinct with an attibute column returns a data frame
nc |>
distinct(SID74)
#> SID74
#> 1 1
#> 2 0
#> 3 5
#> 4 9
#> 5 7
#> 6 4
#> 7 2
#> 8 16
#> 9 18
#> 10 3
#> 11 10
#> 12 23
#> 13 13
#> 14 6
#> 15 8
#> 16 11
#> 17 14
#> 18 12
#> 19 44
#> 20 38
#> 21 15
#> 22 29
#> 23 31
# distinct with an attribute column and .keep_all = TRUE returns a data frame
nc |>
distinct(SID74, .keep_all = TRUE)
#> Simple feature collection with 23 features and 14 fields
#> Geometry type: MULTIPOLYGON
#> Dimension: XY
#> Bounding box: xmin: -82.27872 ymin: 34.30457 xmax: -76.11271 ymax: 36.58965
#> Geodetic CRS: NAD27
#> First 10 features:
#> AREA PERIMETER CNTY_ CNTY_ID NAME FIPS FIPSNO CRESS_ID BIR74 SID74
#> 1 0.114 1.442 1825 1825 Ashe 37009 37009 5 1091 1
#> 2 0.061 1.231 1827 1827 Alleghany 37005 37005 3 487 0
#> 3 0.143 1.630 1828 1828 Surry 37171 37171 86 3188 5
#> 4 0.153 2.206 1832 1832 Northampton 37131 37131 66 1421 9
#> 5 0.097 1.670 1833 1833 Hertford 37091 37091 46 1452 7
#> 6 0.118 1.421 1836 1836 Warren 37185 37185 93 968 4
#> 7 0.114 1.352 1838 1838 Caswell 37033 37033 17 1035 2
#> 8 0.153 1.616 1839 1839 Rockingham 37157 37157 79 4449 16
#> 9 0.190 2.204 1846 1846 Halifax 37083 37083 42 3608 18
#> 10 0.053 1.171 1848 1848 Pasquotank 37139 37139 70 1638 3
#> NWBIR74 BIR79 SID79 NWBIR79 geometry
#> 1 10 1364 0 19 MULTIPOLYGON (((-81.47276 3...
#> 2 10 542 3 12 MULTIPOLYGON (((-81.23989 3...
#> 3 208 3616 6 260 MULTIPOLYGON (((-80.45634 3...
#> 4 1066 1606 3 1197 MULTIPOLYGON (((-77.21767 3...
#> 5 954 1838 5 1237 MULTIPOLYGON (((-76.74506 3...
#> 6 748 1190 2 844 MULTIPOLYGON (((-78.30876 3...
#> 7 550 1253 2 597 MULTIPOLYGON (((-79.53051 3...
#> 8 1243 5386 5 1369 MULTIPOLYGON (((-79.53051 3...
#> 9 2365 4463 17 2980 MULTIPOLYGON (((-77.33221 3...
#> 10 622 2275 4 933 MULTIPOLYGON (((-76.29893 3...
# inconsistency discussed in this GitHub issue https://github.com/r-spatial/sf/issues/1477
# bind_rows always returns a sf object if x input is an sf object
bind_rows(nc, nc_modified)
#> Simple feature collection with 200 features and 15 fields
#> Geometry type: MULTIPOLYGON
#> Dimension: XY
#> Bounding box: xmin: -84.32385 ymin: 33.88199 xmax: -75.45698 ymax: 36.58965
#> Geodetic CRS: NAD27
#> First 10 features:
#> AREA PERIMETER CNTY_ CNTY_ID NAME FIPS FIPSNO CRESS_ID BIR74 SID74
#> 1 0.114 1.442 1825 1825 Ashe 37009 37009 5 1091 1
#> 2 0.061 1.231 1827 1827 Alleghany 37005 37005 3 487 0
#> 3 0.143 1.630 1828 1828 Surry 37171 37171 86 3188 5
#> 4 0.070 2.968 1831 1831 Currituck 37053 37053 27 508 1
#> 5 0.153 2.206 1832 1832 Northampton 37131 37131 66 1421 9
#> 6 0.097 1.670 1833 1833 Hertford 37091 37091 46 1452 7
#> 7 0.062 1.547 1834 1834 Camden 37029 37029 15 286 0
#> 8 0.091 1.284 1835 1835 Gates 37073 37073 37 420 0
#> 9 0.118 1.421 1836 1836 Warren 37185 37185 93 968 4
#> 10 0.124 1.428 1837 1837 Stokes 37169 37169 85 1612 1
#> NWBIR74 BIR79 SID79 NWBIR79 SID_increase geometry
#> 1 10 1364 0 19 NA MULTIPOLYGON (((-81.47276 3...
#> 2 10 542 3 12 NA MULTIPOLYGON (((-81.23989 3...
#> 3 208 3616 6 260 NA MULTIPOLYGON (((-80.45634 3...
#> 4 123 830 2 145 NA MULTIPOLYGON (((-76.00897 3...
#> 5 1066 1606 3 1197 NA MULTIPOLYGON (((-77.21767 3...
#> 6 954 1838 5 1237 NA MULTIPOLYGON (((-76.74506 3...
#> 7 115 350 2 139 NA MULTIPOLYGON (((-76.00897 3...
#> 8 254 594 2 371 NA MULTIPOLYGON (((-76.56251 3...
#> 9 748 1190 2 844 NA MULTIPOLYGON (((-78.30876 3...
#> 10 160 2038 5 176 NA MULTIPOLYGON (((-80.02567 3...
# bind_rows is superseded but not deprecated
# https://github.com/r-spatial/sf/issues/2157
# list_rbind always returns a data frame that needs to be converted back into a sf object
list_rbind(list(nc, nc_modified))
#> AREA PERIMETER CNTY_ CNTY_ID NAME FIPS FIPSNO CRESS_ID BIR74
#> 1 0.114 1.442 1825 1825 Ashe 37009 37009 5 1091
#> 2 0.061 1.231 1827 1827 Alleghany 37005 37005 3 487
#> 3 0.143 1.630 1828 1828 Surry 37171 37171 86 3188
#> 4 0.070 2.968 1831 1831 Currituck 37053 37053 27 508
#> 5 0.153 2.206 1832 1832 Northampton 37131 37131 66 1421
#> 6 0.097 1.670 1833 1833 Hertford 37091 37091 46 1452
#> 7 0.062 1.547 1834 1834 Camden 37029 37029 15 286
#> 8 0.091 1.284 1835 1835 Gates 37073 37073 37 420
#> 9 0.118 1.421 1836 1836 Warren 37185 37185 93 968
#> 10 0.124 1.428 1837 1837 Stokes 37169 37169 85 1612
#> 11 0.114 1.352 1838 1838 Caswell 37033 37033 17 1035
#> 12 0.153 1.616 1839 1839 Rockingham 37157 37157 79 4449
#> 13 0.143 1.663 1840 1840 Granville 37077 37077 39 1671
#> 14 0.109 1.325 1841 1841 Person 37145 37145 73 1556
#> 15 0.072 1.085 1842 1842 Vance 37181 37181 91 2180
#> 16 0.190 2.204 1846 1846 Halifax 37083 37083 42 3608
#> 17 0.053 1.171 1848 1848 Pasquotank 37139 37139 70 1638
#> 18 0.199 1.984 1874 1874 Wilkes 37193 37193 97 3146
#> 19 0.081 1.288 1880 1880 Watauga 37189 37189 95 1323
#> 20 0.063 1.000 1881 1881 Perquimans 37143 37143 72 484
#> 21 0.044 1.158 1887 1887 Chowan 37041 37041 21 751
#> 22 0.064 1.213 1892 1892 Avery 37011 37011 6 781
#> 23 0.086 1.267 1893 1893 Yadkin 37197 37197 99 1269
#> 24 0.128 1.554 1897 1897 Franklin 37069 37069 35 1399
#> 25 0.108 1.483 1900 1900 Forsyth 37067 37067 34 11858
#> 26 0.170 1.680 1903 1903 Guilford 37081 37081 41 16184
#> 27 0.111 1.392 1904 1904 Alamance 37001 37001 1 4672
#> 28 0.180 2.151 1905 1905 Bertie 37015 37015 8 1324
#> 29 0.104 1.294 1907 1907 Orange 37135 37135 68 3164
#> 30 0.077 1.271 1908 1908 Durham 37063 37063 32 7970
#> 31 0.142 1.640 1913 1913 Nash 37127 37127 64 4021
#> 32 0.059 1.319 1927 1927 Mitchell 37121 37121 61 671
#> 33 0.131 1.521 1928 1928 Edgecombe 37065 37065 33 3657
#> 34 0.122 1.516 1932 1932 Caldwell 37027 37027 14 3609
#> 35 0.080 1.307 1936 1936 Yancey 37199 37199 100 770
#> 36 0.118 1.899 1937 1937 Martin 37117 37117 59 1549
#> 37 0.219 2.130 1938 1938 Wake 37183 37183 92 14484
#> 38 0.118 1.601 1946 1946 Madison 37115 37115 58 765
#> 39 0.155 1.781 1947 1947 Iredell 37097 37097 49 4139
#> 40 0.069 1.201 1948 1948 Davie 37059 37059 30 1207
#> 41 0.066 1.070 1950 1950 Alexander 37003 37003 2 1333
#> 42 0.145 1.791 1951 1951 Davidson 37057 37057 29 5509
#> 43 0.134 1.755 1958 1958 Burke 37023 37023 12 3573
#> 44 0.100 1.331 1962 1962 Washington 37187 37187 94 990
#> 45 0.099 1.411 1963 1963 Tyrrell 37177 37177 89 248
#> 46 0.116 1.664 1964 1964 McDowell 37111 37111 56 1946
#> 47 0.201 1.805 1968 1968 Randolph 37151 37151 76 4456
#> 48 0.180 2.142 1973 1973 Chatham 37037 37037 19 1646
#> 49 0.094 1.307 1979 1979 Wilson 37195 37195 98 3702
#> 50 0.134 1.590 1980 1980 Rowan 37159 37159 80 4606
#> 51 0.168 1.791 1984 1984 Pitt 37147 37147 74 5094
#> 52 0.106 1.444 1986 1986 Catawba 37035 37035 18 5754
#> 53 0.168 1.995 1988 1988 Buncombe 37021 37021 11 7515
#> 54 0.207 1.851 1989 1989 Johnston 37101 37101 51 3999
#> 55 0.144 1.690 1996 1996 Haywood 37087 37087 44 2110
#> 56 0.094 3.640 2000 2000 Dare 37055 37055 28 521
#> 57 0.203 3.197 2004 2004 Beaufort 37013 37013 7 2692
#> 58 0.141 2.316 2013 2013 Swain 37173 37173 87 675
#> 59 0.070 1.105 2016 2016 Greene 37079 37079 40 870
#> 60 0.065 1.093 2026 2026 Lee 37105 37105 53 2252
#> 61 0.146 1.778 2027 2027 Rutherford 37161 37161 81 2992
#> 62 0.142 1.655 2029 2029 Wayne 37191 37191 96 6638
#> 63 0.154 1.680 2030 2030 Harnett 37085 37085 43 3776
#> 64 0.118 1.506 2032 2032 Cleveland 37045 37045 23 4866
#> 65 0.078 1.384 2034 2034 Lincoln 37109 37109 55 2216
#> 66 0.125 1.601 2039 2039 Jackson 37099 37099 50 1143
#> 67 0.181 1.980 2040 2040 Moore 37125 37125 63 2648
#> 68 0.143 1.887 2041 2041 Mecklenburg 37119 37119 60 21588
#> 69 0.091 1.321 2042 2042 Cabarrus 37025 37025 13 4099
#> 70 0.130 1.732 2044 2044 Montgomery 37123 37123 62 1258
#> 71 0.103 1.461 2045 2045 Stanly 37167 37167 84 2356
#> 72 0.095 1.471 2047 2047 Henderson 37089 37089 45 2574
#> 73 0.078 1.202 2056 2056 Graham 37075 37075 38 415
#> 74 0.104 1.548 2065 2065 Lenoir 37107 37107 54 3589
#> 75 0.098 1.389 2067 2067 Transylvania 37175 37175 88 1173
#> 76 0.091 1.470 2068 2068 Gaston 37071 37071 36 9014
#> 77 0.060 1.036 2071 2071 Polk 37149 37149 75 533
#> 78 0.131 1.677 2082 2082 Macon 37113 37113 57 797
#> 79 0.241 2.214 2083 2083 Sampson 37163 37163 82 3025
#> 80 0.082 1.388 2085 2085 Pamlico 37137 37137 69 542
#> 81 0.120 1.686 2088 2088 Cherokee 37039 37039 20 1027
#> 82 0.172 1.835 2090 2090 Cumberland 37051 37051 26 20366
#> 83 0.121 1.978 2091 2091 Jones 37103 37103 52 578
#> 84 0.163 1.716 2095 2095 Union 37179 37179 90 3915
#> 85 0.138 1.621 2096 2096 Anson 37007 37007 4 1570
#> 86 0.098 1.262 2097 2097 Hoke 37093 37093 47 1494
#> 87 0.167 2.709 2099 2099 Hyde 37095 37095 48 338
#> 88 0.204 1.871 2100 2100 Duplin 37061 37061 31 2483
#> 89 0.121 1.855 2107 2107 Richmond 37153 37153 77 2756
#> 90 0.051 1.096 2109 2109 Clay 37043 37043 22 284
#> 91 0.177 2.916 2119 2119 Craven 37049 37049 25 5868
#> 92 0.080 1.188 2123 2123 Scotland 37165 37165 83 2255
#> 93 0.195 1.783 2146 2146 Onslow 37133 37133 67 11158
#> 94 0.240 2.004 2150 2150 Robeson 37155 37155 78 7889
#> 95 0.125 2.868 2156 2156 Carteret 37031 37031 16 2414
#> 96 0.225 2.107 2162 2162 Bladen 37017 37017 9 1782
#> 97 0.214 2.152 2185 2185 Pender 37141 37141 71 1228
#> 98 0.240 2.365 2232 2232 Columbus 37047 37047 24 3350
#> 99 0.042 0.999 2238 2238 New Hanover 37129 37129 65 5526
#> 100 0.212 2.024 2241 2241 Brunswick 37019 37019 10 2181
#> 101 0.114 1.442 1825 1825 Ashe 37009 37009 5 1091
#> 102 0.061 1.231 1827 1827 Alleghany 37005 37005 3 487
#> 103 0.143 1.630 1828 1828 Surry 37171 37171 86 3188
#> 104 0.070 2.968 1831 1831 Currituck 37053 37053 27 508
#> 105 0.153 2.206 1832 1832 Northampton 37131 37131 66 1421
#> 106 0.097 1.670 1833 1833 Hertford 37091 37091 46 1452
#> 107 0.062 1.547 1834 1834 Camden 37029 37029 15 286
#> 108 0.091 1.284 1835 1835 Gates 37073 37073 37 420
#> 109 0.118 1.421 1836 1836 Warren 37185 37185 93 968
#> 110 0.124 1.428 1837 1837 Stokes 37169 37169 85 1612
#> 111 0.114 1.352 1838 1838 Caswell 37033 37033 17 1035
#> 112 0.153 1.616 1839 1839 Rockingham 37157 37157 79 4449
#> 113 0.143 1.663 1840 1840 Granville 37077 37077 39 1671
#> 114 0.109 1.325 1841 1841 Person 37145 37145 73 1556
#> 115 0.072 1.085 1842 1842 Vance 37181 37181 91 2180
#> 116 0.190 2.204 1846 1846 Halifax 37083 37083 42 3608
#> 117 0.053 1.171 1848 1848 Pasquotank 37139 37139 70 1638
#> 118 0.199 1.984 1874 1874 Wilkes 37193 37193 97 3146
#> 119 0.081 1.288 1880 1880 Watauga 37189 37189 95 1323
#> 120 0.063 1.000 1881 1881 Perquimans 37143 37143 72 484
#> 121 0.044 1.158 1887 1887 Chowan 37041 37041 21 751
#> 122 0.064 1.213 1892 1892 Avery 37011 37011 6 781
#> 123 0.086 1.267 1893 1893 Yadkin 37197 37197 99 1269
#> 124 0.128 1.554 1897 1897 Franklin 37069 37069 35 1399
#> 125 0.108 1.483 1900 1900 Forsyth 37067 37067 34 11858
#> 126 0.170 1.680 1903 1903 Guilford 37081 37081 41 16184
#> 127 0.111 1.392 1904 1904 Alamance 37001 37001 1 4672
#> 128 0.180 2.151 1905 1905 Bertie 37015 37015 8 1324
#> 129 0.104 1.294 1907 1907 Orange 37135 37135 68 3164
#> 130 0.077 1.271 1908 1908 Durham 37063 37063 32 7970
#> 131 0.142 1.640 1913 1913 Nash 37127 37127 64 4021
#> 132 0.059 1.319 1927 1927 Mitchell 37121 37121 61 671
#> 133 0.131 1.521 1928 1928 Edgecombe 37065 37065 33 3657
#> 134 0.122 1.516 1932 1932 Caldwell 37027 37027 14 3609
#> 135 0.080 1.307 1936 1936 Yancey 37199 37199 100 770
#> 136 0.118 1.899 1937 1937 Martin 37117 37117 59 1549
#> 137 0.219 2.130 1938 1938 Wake 37183 37183 92 14484
#> 138 0.118 1.601 1946 1946 Madison 37115 37115 58 765
#> 139 0.155 1.781 1947 1947 Iredell 37097 37097 49 4139
#> 140 0.069 1.201 1948 1948 Davie 37059 37059 30 1207
#> 141 0.066 1.070 1950 1950 Alexander 37003 37003 2 1333
#> 142 0.145 1.791 1951 1951 Davidson 37057 37057 29 5509
#> 143 0.134 1.755 1958 1958 Burke 37023 37023 12 3573
#> 144 0.100 1.331 1962 1962 Washington 37187 37187 94 990
#> 145 0.099 1.411 1963 1963 Tyrrell 37177 37177 89 248
#> 146 0.116 1.664 1964 1964 McDowell 37111 37111 56 1946
#> 147 0.201 1.805 1968 1968 Randolph 37151 37151 76 4456
#> 148 0.180 2.142 1973 1973 Chatham 37037 37037 19 1646
#> 149 0.094 1.307 1979 1979 Wilson 37195 37195 98 3702
#> 150 0.134 1.590 1980 1980 Rowan 37159 37159 80 4606
#> 151 0.168 1.791 1984 1984 Pitt 37147 37147 74 5094
#> 152 0.106 1.444 1986 1986 Catawba 37035 37035 18 5754
#> 153 0.168 1.995 1988 1988 Buncombe 37021 37021 11 7515
#> 154 0.207 1.851 1989 1989 Johnston 37101 37101 51 3999
#> 155 0.144 1.690 1996 1996 Haywood 37087 37087 44 2110
#> 156 0.094 3.640 2000 2000 Dare 37055 37055 28 521
#> 157 0.203 3.197 2004 2004 Beaufort 37013 37013 7 2692
#> 158 0.141 2.316 2013 2013 Swain 37173 37173 87 675
#> 159 0.070 1.105 2016 2016 Greene 37079 37079 40 870
#> 160 0.065 1.093 2026 2026 Lee 37105 37105 53 2252
#> 161 0.146 1.778 2027 2027 Rutherford 37161 37161 81 2992
#> 162 0.142 1.655 2029 2029 Wayne 37191 37191 96 6638
#> 163 0.154 1.680 2030 2030 Harnett 37085 37085 43 3776
#> 164 0.118 1.506 2032 2032 Cleveland 37045 37045 23 4866
#> 165 0.078 1.384 2034 2034 Lincoln 37109 37109 55 2216
#> 166 0.125 1.601 2039 2039 Jackson 37099 37099 50 1143
#> 167 0.181 1.980 2040 2040 Moore 37125 37125 63 2648
#> 168 0.143 1.887 2041 2041 Mecklenburg 37119 37119 60 21588
#> 169 0.091 1.321 2042 2042 Cabarrus 37025 37025 13 4099
#> 170 0.130 1.732 2044 2044 Montgomery 37123 37123 62 1258
#> 171 0.103 1.461 2045 2045 Stanly 37167 37167 84 2356
#> 172 0.095 1.471 2047 2047 Henderson 37089 37089 45 2574
#> 173 0.078 1.202 2056 2056 Graham 37075 37075 38 415
#> 174 0.104 1.548 2065 2065 Lenoir 37107 37107 54 3589
#> 175 0.098 1.389 2067 2067 Transylvania 37175 37175 88 1173
#> 176 0.091 1.470 2068 2068 Gaston 37071 37071 36 9014
#> 177 0.060 1.036 2071 2071 Polk 37149 37149 75 533
#> 178 0.131 1.677 2082 2082 Macon 37113 37113 57 797
#> 179 0.241 2.214 2083 2083 Sampson 37163 37163 82 3025
#> 180 0.082 1.388 2085 2085 Pamlico 37137 37137 69 542
#> 181 0.120 1.686 2088 2088 Cherokee 37039 37039 20 1027
#> 182 0.172 1.835 2090 2090 Cumberland 37051 37051 26 20366
#> 183 0.121 1.978 2091 2091 Jones 37103 37103 52 578
#> 184 0.163 1.716 2095 2095 Union 37179 37179 90 3915
#> 185 0.138 1.621 2096 2096 Anson 37007 37007 4 1570
#> 186 0.098 1.262 2097 2097 Hoke 37093 37093 47 1494
#> 187 0.167 2.709 2099 2099 Hyde 37095 37095 48 338
#> 188 0.204 1.871 2100 2100 Duplin 37061 37061 31 2483
#> 189 0.121 1.855 2107 2107 Richmond 37153 37153 77 2756
#> 190 0.051 1.096 2109 2109 Clay 37043 37043 22 284
#> 191 0.177 2.916 2119 2119 Craven 37049 37049 25 5868
#> 192 0.080 1.188 2123 2123 Scotland 37165 37165 83 2255
#> 193 0.195 1.783 2146 2146 Onslow 37133 37133 67 11158
#> 194 0.240 2.004 2150 2150 Robeson 37155 37155 78 7889
#> 195 0.125 2.868 2156 2156 Carteret 37031 37031 16 2414
#> 196 0.225 2.107 2162 2162 Bladen 37017 37017 9 1782
#> 197 0.214 2.152 2185 2185 Pender 37141 37141 71 1228
#> 198 0.240 2.365 2232 2232 Columbus 37047 37047 24 3350
#> 199 0.042 0.999 2238 2238 New Hanover 37129 37129 65 5526
#> 200 0.212 2.024 2241 2241 Brunswick 37019 37019 10 2181
#> SID74 NWBIR74 BIR79 SID79 NWBIR79 geometry
#> 1 1 10 1364 0 19 MULTIPOLYGON (((-81.47276 3...
#> 2 0 10 542 3 12 MULTIPOLYGON (((-81.23989 3...
#> 3 5 208 3616 6 260 MULTIPOLYGON (((-80.45634 3...
#> 4 1 123 830 2 145 MULTIPOLYGON (((-76.00897 3...
#> 5 9 1066 1606 3 1197 MULTIPOLYGON (((-77.21767 3...
#> 6 7 954 1838 5 1237 MULTIPOLYGON (((-76.74506 3...
#> 7 0 115 350 2 139 MULTIPOLYGON (((-76.00897 3...
#> 8 0 254 594 2 371 MULTIPOLYGON (((-76.56251 3...
#> 9 4 748 1190 2 844 MULTIPOLYGON (((-78.30876 3...
#> 10 1 160 2038 5 176 MULTIPOLYGON (((-80.02567 3...
#> 11 2 550 1253 2 597 MULTIPOLYGON (((-79.53051 3...
#> 12 16 1243 5386 5 1369 MULTIPOLYGON (((-79.53051 3...
#> 13 4 930 2074 4 1058 MULTIPOLYGON (((-78.74912 3...
#> 14 4 613 1790 4 650 MULTIPOLYGON (((-78.8068 36...
#> 15 4 1179 2753 6 1492 MULTIPOLYGON (((-78.49252 3...
#> 16 18 2365 4463 17 2980 MULTIPOLYGON (((-77.33221 3...
#> 17 3 622 2275 4 933 MULTIPOLYGON (((-76.29893 3...
#> 18 4 200 3725 7 222 MULTIPOLYGON (((-81.02057 3...
#> 19 1 17 1775 1 33 MULTIPOLYGON (((-81.80622 3...
#> 20 1 230 676 0 310 MULTIPOLYGON (((-76.48053 3...
#> 21 1 368 899 1 491 MULTIPOLYGON (((-76.68874 3...
#> 22 0 4 977 0 5 MULTIPOLYGON (((-81.94135 3...
#> 23 1 65 1568 1 76 MULTIPOLYGON (((-80.49554 3...
#> 24 2 736 1863 0 950 MULTIPOLYGON (((-78.25455 3...
#> 25 10 3919 15704 18 5031 MULTIPOLYGON (((-80.0381 36...
#> 26 23 5483 20543 38 7089 MULTIPOLYGON (((-79.53782 3...
#> 27 13 1243 5767 11 1397 MULTIPOLYGON (((-79.24619 3...
#> 28 6 921 1616 5 1161 MULTIPOLYGON (((-76.78307 3...
#> 29 4 776 4478 6 1086 MULTIPOLYGON (((-79.01814 3...
#> 30 16 3732 10432 22 4948 MULTIPOLYGON (((-79.01814 3...
#> 31 8 1851 5189 7 2274 MULTIPOLYGON (((-78.18693 3...
#> 32 0 1 919 2 4 MULTIPOLYGON (((-82.11885 3...
#> 33 10 2186 4359 9 2696 MULTIPOLYGON (((-77.67122 3...
#> 34 6 309 4249 9 360 MULTIPOLYGON (((-81.32813 3...
#> 35 0 12 869 1 10 MULTIPOLYGON (((-82.27921 3...
#> 36 2 883 1849 1 1033 MULTIPOLYGON (((-77.17846 3...
#> 37 16 4397 20857 31 6221 MULTIPOLYGON (((-78.92107 3...
#> 38 2 5 926 2 3 MULTIPOLYGON (((-82.89597 3...
#> 39 4 1144 5400 5 1305 MULTIPOLYGON (((-80.72652 3...
#> 40 1 148 1438 3 177 MULTIPOLYGON (((-80.45677 3...
#> 41 0 128 1683 2 150 MULTIPOLYGON (((-81.10889 3...
#> 42 8 736 7143 8 941 MULTIPOLYGON (((-80.06441 3...
#> 43 5 326 4314 15 407 MULTIPOLYGON (((-81.81628 3...
#> 44 5 521 1141 0 651 MULTIPOLYGON (((-76.40843 3...
#> 45 0 116 319 0 141 MULTIPOLYGON (((-76.1673 35...
#> 46 5 134 2215 5 128 MULTIPOLYGON (((-81.81628 3...
#> 47 7 384 5711 12 483 MULTIPOLYGON (((-79.76499 3...
#> 48 2 591 2398 3 687 MULTIPOLYGON (((-79.55536 3...
#> 49 11 1827 4706 13 2330 MULTIPOLYGON (((-78.06533 3...
#> 50 3 1057 6427 8 1504 MULTIPOLYGON (((-80.29824 3...
#> 51 14 2620 6635 11 3059 MULTIPOLYGON (((-77.47388 3...
#> 52 5 790 6883 21 914 MULTIPOLYGON (((-80.96143 3...
#> 53 9 930 9956 18 1206 MULTIPOLYGON (((-82.2581 35...
#> 54 6 1165 4780 13 1349 MULTIPOLYGON (((-78.53874 3...
#> 55 2 57 2463 8 62 MULTIPOLYGON (((-82.74389 3...
#> 56 0 43 1059 1 73 MULTIPOLYGON (((-75.78317 3...
#> 57 7 1131 2909 4 1163 MULTIPOLYGON (((-77.10377 3...
#> 58 3 281 883 2 406 MULTIPOLYGON (((-83.33182 3...
#> 59 4 534 1178 4 664 MULTIPOLYGON (((-77.80518 3...
#> 60 5 736 2949 6 905 MULTIPOLYGON (((-79.18244 3...
#> 61 12 495 3543 8 576 MULTIPOLYGON (((-81.97144 3...
#> 62 18 2593 8227 23 3073 MULTIPOLYGON (((-78.16319 3...
#> 63 6 1051 4789 10 1453 MULTIPOLYGON (((-78.61274 3...
#> 64 10 1491 5526 21 1729 MULTIPOLYGON (((-81.32282 3...
#> 65 8 302 2817 7 350 MULTIPOLYGON (((-80.95677 3...
#> 66 2 215 1504 5 307 MULTIPOLYGON (((-83.10629 3...
#> 67 5 844 3534 5 1151 MULTIPOLYGON (((-79.60747 3...
#> 68 44 8027 30757 35 11631 MULTIPOLYGON (((-81.0493 35...
#> 69 3 856 5669 20 1203 MULTIPOLYGON (((-80.50294 3...
#> 70 3 472 1598 8 588 MULTIPOLYGON (((-80.07141 3...
#> 71 5 370 3039 7 528 MULTIPOLYGON (((-80.07141 3...
#> 72 5 158 3679 8 264 MULTIPOLYGON (((-82.57003 3...
#> 73 0 40 488 1 45 MULTIPOLYGON (((-83.69563 3...
#> 74 10 1826 4225 14 2047 MULTIPOLYGON (((-77.83658 3...
#> 75 3 92 1401 4 104 MULTIPOLYGON (((-82.8877 35...
#> 76 11 1523 11455 26 2194 MULTIPOLYGON (((-81.32282 3...
#> 77 1 95 673 0 79 MULTIPOLYGON (((-82.21017 3...
#> 78 0 9 1157 3 22 MULTIPOLYGON (((-83.10629 3...
#> 79 4 1396 3447 4 1524 MULTIPOLYGON (((-78.11377 3...
#> 80 1 222 631 1 277 MULTIPOLYGON (((-76.94324 3...
#> 81 2 32 1173 1 42 MULTIPOLYGON (((-84.29104 3...
#> 82 38 7043 26370 57 10614 MULTIPOLYGON (((-78.49929 3...
#> 83 1 297 650 2 305 MULTIPOLYGON (((-77.049 34....
#> 84 4 1034 5273 9 1348 MULTIPOLYGON (((-80.84016 3...
#> 85 15 952 1875 4 1161 MULTIPOLYGON (((-79.91995 3...
#> 86 7 987 1706 6 1172 MULTIPOLYGON (((-79.3403 34...
#> 87 0 134 427 0 169 MULTIPOLYGON (((-76.51894 3...
#> 88 4 1061 2777 7 1227 MULTIPOLYGON (((-77.68983 3...
#> 89 4 1043 3108 7 1218 MULTIPOLYGON (((-79.68596 3...
#> 90 0 1 419 0 5 MULTIPOLYGON (((-83.938 34....
#> 91 13 1744 7595 18 2342 MULTIPOLYGON (((-76.89761 3...
#> 92 8 1206 2617 16 1436 MULTIPOLYGON (((-79.45597 3...
#> 93 29 2217 14655 23 3568 MULTIPOLYGON (((-77.53864 3...
#> 94 31 5904 9087 26 6899 MULTIPOLYGON (((-78.86451 3...
#> 95 5 341 3339 4 487 MULTIPOLYGON (((-77.14896 3...
#> 96 8 818 2052 5 1023 MULTIPOLYGON (((-78.2615 34...
#> 97 4 580 1602 3 763 MULTIPOLYGON (((-78.02592 3...
#> 98 15 1431 4144 17 1832 MULTIPOLYGON (((-78.65572 3...
#> 99 12 1633 6917 9 2100 MULTIPOLYGON (((-77.96073 3...
#> 100 5 659 2655 6 841 MULTIPOLYGON (((-78.65572 3...
#> 101 1 10 1364 0 19 MULTIPOLYGON (((-81.47276 3...
#> 102 0 10 542 3 12 MULTIPOLYGON (((-81.23989 3...
#> 103 5 208 3616 6 260 MULTIPOLYGON (((-80.45634 3...
#> 104 1 123 830 2 145 MULTIPOLYGON (((-76.00897 3...
#> 105 9 1066 1606 3 1197 MULTIPOLYGON (((-77.21767 3...
#> 106 7 954 1838 5 1237 MULTIPOLYGON (((-76.74506 3...
#> 107 0 115 350 2 139 MULTIPOLYGON (((-76.00897 3...
#> 108 0 254 594 2 371 MULTIPOLYGON (((-76.56251 3...
#> 109 4 748 1190 2 844 MULTIPOLYGON (((-78.30876 3...
#> 110 1 160 2038 5 176 MULTIPOLYGON (((-80.02567 3...
#> 111 2 550 1253 2 597 MULTIPOLYGON (((-79.53051 3...
#> 112 16 1243 5386 5 1369 MULTIPOLYGON (((-79.53051 3...
#> 113 4 930 2074 4 1058 MULTIPOLYGON (((-78.74912 3...
#> 114 4 613 1790 4 650 MULTIPOLYGON (((-78.8068 36...
#> 115 4 1179 2753 6 1492 MULTIPOLYGON (((-78.49252 3...
#> 116 18 2365 4463 17 2980 MULTIPOLYGON (((-77.33221 3...
#> 117 3 622 2275 4 933 MULTIPOLYGON (((-76.29893 3...
#> 118 4 200 3725 7 222 MULTIPOLYGON (((-81.02057 3...
#> 119 1 17 1775 1 33 MULTIPOLYGON (((-81.80622 3...
#> 120 1 230 676 0 310 MULTIPOLYGON (((-76.48053 3...
#> 121 1 368 899 1 491 MULTIPOLYGON (((-76.68874 3...
#> 122 0 4 977 0 5 MULTIPOLYGON (((-81.94135 3...
#> 123 1 65 1568 1 76 MULTIPOLYGON (((-80.49554 3...
#> 124 2 736 1863 0 950 MULTIPOLYGON (((-78.25455 3...
#> 125 10 3919 15704 18 5031 MULTIPOLYGON (((-80.0381 36...
#> 126 23 5483 20543 38 7089 MULTIPOLYGON (((-79.53782 3...
#> 127 13 1243 5767 11 1397 MULTIPOLYGON (((-79.24619 3...
#> 128 6 921 1616 5 1161 MULTIPOLYGON (((-76.78307 3...
#> 129 4 776 4478 6 1086 MULTIPOLYGON (((-79.01814 3...
#> 130 16 3732 10432 22 4948 MULTIPOLYGON (((-79.01814 3...
#> 131 8 1851 5189 7 2274 MULTIPOLYGON (((-78.18693 3...
#> 132 0 1 919 2 4 MULTIPOLYGON (((-82.11885 3...
#> 133 10 2186 4359 9 2696 MULTIPOLYGON (((-77.67122 3...
#> 134 6 309 4249 9 360 MULTIPOLYGON (((-81.32813 3...
#> 135 0 12 869 1 10 MULTIPOLYGON (((-82.27921 3...
#> 136 2 883 1849 1 1033 MULTIPOLYGON (((-77.17846 3...
#> 137 16 4397 20857 31 6221 MULTIPOLYGON (((-78.92107 3...
#> 138 2 5 926 2 3 MULTIPOLYGON (((-82.89597 3...
#> 139 4 1144 5400 5 1305 MULTIPOLYGON (((-80.72652 3...
#> 140 1 148 1438 3 177 MULTIPOLYGON (((-80.45677 3...
#> 141 0 128 1683 2 150 MULTIPOLYGON (((-81.10889 3...
#> 142 8 736 7143 8 941 MULTIPOLYGON (((-80.06441 3...
#> 143 5 326 4314 15 407 MULTIPOLYGON (((-81.81628 3...
#> 144 5 521 1141 0 651 MULTIPOLYGON (((-76.40843 3...
#> 145 0 116 319 0 141 MULTIPOLYGON (((-76.1673 35...
#> 146 5 134 2215 5 128 MULTIPOLYGON (((-81.81628 3...
#> 147 7 384 5711 12 483 MULTIPOLYGON (((-79.76499 3...
#> 148 2 591 2398 3 687 MULTIPOLYGON (((-79.55536 3...
#> 149 11 1827 4706 13 2330 MULTIPOLYGON (((-78.06533 3...
#> 150 3 1057 6427 8 1504 MULTIPOLYGON (((-80.29824 3...
#> 151 14 2620 6635 11 3059 MULTIPOLYGON (((-77.47388 3...
#> 152 5 790 6883 21 914 MULTIPOLYGON (((-80.96143 3...
#> 153 9 930 9956 18 1206 MULTIPOLYGON (((-82.2581 35...
#> 154 6 1165 4780 13 1349 MULTIPOLYGON (((-78.53874 3...
#> 155 2 57 2463 8 62 MULTIPOLYGON (((-82.74389 3...
#> 156 0 43 1059 1 73 MULTIPOLYGON (((-75.78317 3...
#> 157 7 1131 2909 4 1163 MULTIPOLYGON (((-77.10377 3...
#> 158 3 281 883 2 406 MULTIPOLYGON (((-83.33182 3...
#> 159 4 534 1178 4 664 MULTIPOLYGON (((-77.80518 3...
#> 160 5 736 2949 6 905 MULTIPOLYGON (((-79.18244 3...
#> 161 12 495 3543 8 576 MULTIPOLYGON (((-81.97144 3...
#> 162 18 2593 8227 23 3073 MULTIPOLYGON (((-78.16319 3...
#> 163 6 1051 4789 10 1453 MULTIPOLYGON (((-78.61274 3...
#> 164 10 1491 5526 21 1729 MULTIPOLYGON (((-81.32282 3...
#> 165 8 302 2817 7 350 MULTIPOLYGON (((-80.95677 3...
#> 166 2 215 1504 5 307 MULTIPOLYGON (((-83.10629 3...
#> 167 5 844 3534 5 1151 MULTIPOLYGON (((-79.60747 3...
#> 168 44 8027 30757 35 11631 MULTIPOLYGON (((-81.0493 35...
#> 169 3 856 5669 20 1203 MULTIPOLYGON (((-80.50294 3...
#> 170 3 472 1598 8 588 MULTIPOLYGON (((-80.07141 3...
#> 171 5 370 3039 7 528 MULTIPOLYGON (((-80.07141 3...
#> 172 5 158 3679 8 264 MULTIPOLYGON (((-82.57003 3...
#> 173 0 40 488 1 45 MULTIPOLYGON (((-83.69563 3...
#> 174 10 1826 4225 14 2047 MULTIPOLYGON (((-77.83658 3...
#> 175 3 92 1401 4 104 MULTIPOLYGON (((-82.8877 35...
#> 176 11 1523 11455 26 2194 MULTIPOLYGON (((-81.32282 3...
#> 177 1 95 673 0 79 MULTIPOLYGON (((-82.21017 3...
#> 178 0 9 1157 3 22 MULTIPOLYGON (((-83.10629 3...
#> 179 4 1396 3447 4 1524 MULTIPOLYGON (((-78.11377 3...
#> 180 1 222 631 1 277 MULTIPOLYGON (((-76.94324 3...
#> 181 2 32 1173 1 42 MULTIPOLYGON (((-84.29104 3...
#> 182 38 7043 26370 57 10614 MULTIPOLYGON (((-78.49929 3...
#> 183 1 297 650 2 305 MULTIPOLYGON (((-77.049 34....
#> 184 4 1034 5273 9 1348 MULTIPOLYGON (((-80.84016 3...
#> 185 15 952 1875 4 1161 MULTIPOLYGON (((-79.91995 3...
#> 186 7 987 1706 6 1172 MULTIPOLYGON (((-79.3403 34...
#> 187 0 134 427 0 169 MULTIPOLYGON (((-76.51894 3...
#> 188 4 1061 2777 7 1227 MULTIPOLYGON (((-77.68983 3...
#> 189 4 1043 3108 7 1218 MULTIPOLYGON (((-79.68596 3...
#> 190 0 1 419 0 5 MULTIPOLYGON (((-83.938 34....
#> 191 13 1744 7595 18 2342 MULTIPOLYGON (((-76.89761 3...
#> 192 8 1206 2617 16 1436 MULTIPOLYGON (((-79.45597 3...
#> 193 29 2217 14655 23 3568 MULTIPOLYGON (((-77.53864 3...
#> 194 31 5904 9087 26 6899 MULTIPOLYGON (((-78.86451 3...
#> 195 5 341 3339 4 487 MULTIPOLYGON (((-77.14896 3...
#> 196 8 818 2052 5 1023 MULTIPOLYGON (((-78.2615 34...
#> 197 4 580 1602 3 763 MULTIPOLYGON (((-78.02592 3...
#> 198 15 1431 4144 17 1832 MULTIPOLYGON (((-78.65572 3...
#> 199 12 1633 6917 9 2100 MULTIPOLYGON (((-77.96073 3...
#> 200 5 659 2655 6 841 MULTIPOLYGON (((-78.65572 3...
#> SID_increase
#> 1 NA
#> 2 NA
#> 3 NA
#> 4 NA
#> 5 NA
#> 6 NA
#> 7 NA
#> 8 NA
#> 9 NA
#> 10 NA
#> 11 NA
#> 12 NA
#> 13 NA
#> 14 NA
#> 15 NA
#> 16 NA
#> 17 NA
#> 18 NA
#> 19 NA
#> 20 NA
#> 21 NA
#> 22 NA
#> 23 NA
#> 24 NA
#> 25 NA
#> 26 NA
#> 27 NA
#> 28 NA
#> 29 NA
#> 30 NA
#> 31 NA
#> 32 NA
#> 33 NA
#> 34 NA
#> 35 NA
#> 36 NA
#> 37 NA
#> 38 NA
#> 39 NA
#> 40 NA
#> 41 NA
#> 42 NA
#> 43 NA
#> 44 NA
#> 45 NA
#> 46 NA
#> 47 NA
#> 48 NA
#> 49 NA
#> 50 NA
#> 51 NA
#> 52 NA
#> 53 NA
#> 54 NA
#> 55 NA
#> 56 NA
#> 57 NA
#> 58 NA
#> 59 NA
#> 60 NA
#> 61 NA
#> 62 NA
#> 63 NA
#> 64 NA
#> 65 NA
#> 66 NA
#> 67 NA
#> 68 NA
#> 69 NA
#> 70 NA
#> 71 NA
#> 72 NA
#> 73 NA
#> 74 NA
#> 75 NA
#> 76 NA
#> 77 NA
#> 78 NA
#> 79 NA
#> 80 NA
#> 81 NA
#> 82 NA
#> 83 NA
#> 84 NA
#> 85 NA
#> 86 NA
#> 87 NA
#> 88 NA
#> 89 NA
#> 90 NA
#> 91 NA
#> 92 NA
#> 93 NA
#> 94 NA
#> 95 NA
#> 96 NA
#> 97 NA
#> 98 NA
#> 99 NA
#> 100 NA
#> 101 FALSE
#> 102 TRUE
#> 103 TRUE
#> 104 TRUE
#> 105 FALSE
#> 106 FALSE
#> 107 TRUE
#> 108 TRUE
#> 109 FALSE
#> 110 TRUE
#> 111 FALSE
#> 112 FALSE
#> 113 FALSE
#> 114 FALSE
#> 115 TRUE
#> 116 FALSE
#> 117 TRUE
#> 118 TRUE
#> 119 FALSE
#> 120 FALSE
#> 121 FALSE
#> 122 FALSE
#> 123 FALSE
#> 124 FALSE
#> 125 TRUE
#> 126 TRUE
#> 127 FALSE
#> 128 FALSE
#> 129 TRUE
#> 130 TRUE
#> 131 FALSE
#> 132 TRUE
#> 133 FALSE
#> 134 TRUE
#> 135 TRUE
#> 136 FALSE
#> 137 TRUE
#> 138 FALSE
#> 139 TRUE
#> 140 TRUE
#> 141 TRUE
#> 142 FALSE
#> 143 TRUE
#> 144 FALSE
#> 145 FALSE
#> 146 FALSE
#> 147 TRUE
#> 148 TRUE
#> 149 TRUE
#> 150 TRUE
#> 151 FALSE
#> 152 TRUE
#> 153 TRUE
#> 154 TRUE
#> 155 TRUE
#> 156 TRUE
#> 157 FALSE
#> 158 FALSE
#> 159 FALSE
#> 160 TRUE
#> 161 FALSE
#> 162 TRUE
#> 163 TRUE
#> 164 TRUE
#> 165 FALSE
#> 166 TRUE
#> 167 FALSE
#> 168 FALSE
#> 169 TRUE
#> 170 TRUE
#> 171 TRUE
#> 172 TRUE
#> 173 TRUE
#> 174 TRUE
#> 175 TRUE
#> 176 TRUE
#> 177 FALSE
#> 178 TRUE
#> 179 FALSE
#> 180 FALSE
#> 181 FALSE
#> 182 TRUE
#> 183 TRUE
#> 184 TRUE
#> 185 FALSE
#> 186 FALSE
#> 187 FALSE
#> 188 TRUE
#> 189 TRUE
#> 190 FALSE
#> 191 TRUE
#> 192 TRUE
#> 193 FALSE
#> 194 FALSE
#> 195 FALSE
#> 196 FALSE
#> 197 FALSE
#> 198 TRUE
#> 199 FALSE
#> 200 TRUE
st_as_sf(list_rbind(list(nc, nc_modified)))
#> Simple feature collection with 200 features and 15 fields
#> Geometry type: MULTIPOLYGON
#> Dimension: XY
#> Bounding box: xmin: -84.32385 ymin: 33.88199 xmax: -75.45698 ymax: 36.58965
#> Geodetic CRS: NAD27
#> First 10 features:
#> AREA PERIMETER CNTY_ CNTY_ID NAME FIPS FIPSNO CRESS_ID BIR74 SID74
#> 1 0.114 1.442 1825 1825 Ashe 37009 37009 5 1091 1
#> 2 0.061 1.231 1827 1827 Alleghany 37005 37005 3 487 0
#> 3 0.143 1.630 1828 1828 Surry 37171 37171 86 3188 5
#> 4 0.070 2.968 1831 1831 Currituck 37053 37053 27 508 1
#> 5 0.153 2.206 1832 1832 Northampton 37131 37131 66 1421 9
#> 6 0.097 1.670 1833 1833 Hertford 37091 37091 46 1452 7
#> 7 0.062 1.547 1834 1834 Camden 37029 37029 15 286 0
#> 8 0.091 1.284 1835 1835 Gates 37073 37073 37 420 0
#> 9 0.118 1.421 1836 1836 Warren 37185 37185 93 968 4
#> 10 0.124 1.428 1837 1837 Stokes 37169 37169 85 1612 1
#> NWBIR74 BIR79 SID79 NWBIR79 SID_increase geometry
#> 1 10 1364 0 19 NA MULTIPOLYGON (((-81.47276 3...
#> 2 10 542 3 12 NA MULTIPOLYGON (((-81.23989 3...
#> 3 208 3616 6 260 NA MULTIPOLYGON (((-80.45634 3...
#> 4 123 830 2 145 NA MULTIPOLYGON (((-76.00897 3...
#> 5 1066 1606 3 1197 NA MULTIPOLYGON (((-77.21767 3...
#> 6 954 1838 5 1237 NA MULTIPOLYGON (((-76.74506 3...
#> 7 115 350 2 139 NA MULTIPOLYGON (((-76.00897 3...
#> 8 254 594 2 371 NA MULTIPOLYGON (((-76.56251 3...
#> 9 748 1190 2 844 NA MULTIPOLYGON (((-78.30876 3...
#> 10 160 2038 5 176 NA MULTIPOLYGON (((-80.02567 3...
Created on 2023-12-15 with reprex v2.0.2