Documentation of sf and tidyverse compatibility
date-created: 2023-12-15 date-modified: 2024-10-30
# Notes to add to https://geocompr.r-universe.dev/articles/geocompkg/tidyverse-pitfalls.html
library(sf)
#> Linking to GEOS 3.11.0, GDAL 3.5.3, PROJ 9.1.0; sf_use_s2() is TRUE
library(tidyverse)
nc = st_read(system.file("shape/nc.shp", package="sf"))
#> Reading layer `nc' from data source
#> `/Users/elipousson/Library/R/arm64/4.4/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,
sep_test_col = paste0(
sample(LETTERS, nrow(nc), replace = TRUE),
"/",
sample(LETTERS, nrow(nc), replace = TRUE)
)
)
# 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 errors when trying to use the .by argument
# open issue: https://github.com/r-spatial/sf/issues/2207
withCallingHandlers(
nc_modified_by <- nc_modified |>
summarise(
.by = SID_increase
),
error = function(cnd) {
print(cnd$message)
}
)
#> [1] "when using .by, also add across(geometry, st_union) as argument"
#> Error in summarise.sf(nc_modified, .by = SID_increase): when using .by, also add across(geometry, st_union) as argument
# This is the recommended work-around in the message
nc_modified_by <- nc_modified |>
summarise(
across(geometry, st_union),
.by = SID_increase
)
# compared to group_by method
nc_modified_group_by <- nc_modified |>
group_by(SID_increase) |>
summarise()
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 16 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 sep_test_col
#> 1 10 1364 0 19 FALSE Y/K
#> 2 10 542 3 12 TRUE F/K
#> 3 208 3616 6 260 TRUE W/Z
#> 4 123 830 2 145 TRUE X/B
#> 5 1066 1606 3 1197 FALSE W/H
#> 6 954 1838 5 1237 FALSE G/P
#> 7 115 350 2 139 TRUE Q/V
#> 8 254 594 2 371 TRUE B/Y
#> 9 748 1190 2 844 FALSE K/K
#> 10 160 2038 5 176 TRUE I/H
#> 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...
# 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 16 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 sep_test_col
#> 1 10 1364 0 19 FALSE Y/K
#> 2 10 542 3 12 TRUE F/K
#> 3 208 3616 6 260 TRUE W/Z
#> 4 123 830 2 145 TRUE X/B
#> 5 1066 1606 3 1197 FALSE W/H
#> 6 954 1838 5 1237 FALSE G/P
#> 7 115 350 2 139 TRUE Q/V
#> 8 254 594 2 371 TRUE B/Y
#> 9 748 1190 2 844 FALSE K/K
#> 10 160 2038 5 176 TRUE I/H
#> 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...
# 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
# inconsistency discussed in this GitHub issue https://github.com/r-spatial/sf/issues/1477
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 sf object
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...
# 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 16 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 sep_test_col
#> 1 10 1364 0 19 NA <NA>
#> 2 10 542 3 12 NA <NA>
#> 3 208 3616 6 260 NA <NA>
#> 4 123 830 2 145 NA <NA>
#> 5 1066 1606 3 1197 NA <NA>
#> 6 954 1838 5 1237 NA <NA>
#> 7 115 350 2 139 NA <NA>
#> 8 254 594 2 371 NA <NA>
#> 9 748 1190 2 844 NA <NA>
#> 10 160 2038 5 176 NA <NA>
#> 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...
# 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 sep_test_col
#> 1 NA <NA>
#> 2 NA <NA>
#> 3 NA <NA>
#> 4 NA <NA>
#> 5 NA <NA>
#> 6 NA <NA>
#> 7 NA <NA>
#> 8 NA <NA>
#> 9 NA <NA>
#> 10 NA <NA>
#> 11 NA <NA>
#> 12 NA <NA>
#> 13 NA <NA>
#> 14 NA <NA>
#> 15 NA <NA>
#> 16 NA <NA>
#> 17 NA <NA>
#> 18 NA <NA>
#> 19 NA <NA>
#> 20 NA <NA>
#> 21 NA <NA>
#> 22 NA <NA>
#> 23 NA <NA>
#> 24 NA <NA>
#> 25 NA <NA>
#> 26 NA <NA>
#> 27 NA <NA>
#> 28 NA <NA>
#> 29 NA <NA>
#> 30 NA <NA>
#> 31 NA <NA>
#> 32 NA <NA>
#> 33 NA <NA>
#> 34 NA <NA>
#> 35 NA <NA>
#> 36 NA <NA>
#> 37 NA <NA>
#> 38 NA <NA>
#> 39 NA <NA>
#> 40 NA <NA>
#> 41 NA <NA>
#> 42 NA <NA>
#> 43 NA <NA>
#> 44 NA <NA>
#> 45 NA <NA>
#> 46 NA <NA>
#> 47 NA <NA>
#> 48 NA <NA>
#> 49 NA <NA>
#> 50 NA <NA>
#> 51 NA <NA>
#> 52 NA <NA>
#> 53 NA <NA>
#> 54 NA <NA>
#> 55 NA <NA>
#> 56 NA <NA>
#> 57 NA <NA>
#> 58 NA <NA>
#> 59 NA <NA>
#> 60 NA <NA>
#> 61 NA <NA>
#> 62 NA <NA>
#> 63 NA <NA>
#> 64 NA <NA>
#> 65 NA <NA>
#> 66 NA <NA>
#> 67 NA <NA>
#> 68 NA <NA>
#> 69 NA <NA>
#> 70 NA <NA>
#> 71 NA <NA>
#> 72 NA <NA>
#> 73 NA <NA>
#> 74 NA <NA>
#> 75 NA <NA>
#> 76 NA <NA>
#> 77 NA <NA>
#> 78 NA <NA>
#> 79 NA <NA>
#> 80 NA <NA>
#> 81 NA <NA>
#> 82 NA <NA>
#> 83 NA <NA>
#> 84 NA <NA>
#> 85 NA <NA>
#> 86 NA <NA>
#> 87 NA <NA>
#> 88 NA <NA>
#> 89 NA <NA>
#> 90 NA <NA>
#> 91 NA <NA>
#> 92 NA <NA>
#> 93 NA <NA>
#> 94 NA <NA>
#> 95 NA <NA>
#> 96 NA <NA>
#> 97 NA <NA>
#> 98 NA <NA>
#> 99 NA <NA>
#> 100 NA <NA>
#> 101 FALSE Y/K
#> 102 TRUE F/K
#> 103 TRUE W/Z
#> 104 TRUE X/B
#> 105 FALSE W/H
#> 106 FALSE G/P
#> 107 TRUE Q/V
#> 108 TRUE B/Y
#> 109 FALSE K/K
#> 110 TRUE I/H
#> 111 FALSE E/A
#> 112 FALSE Y/I
#> 113 FALSE C/X
#> 114 FALSE Y/E
#> 115 TRUE T/Q
#> 116 FALSE Y/Z
#> 117 TRUE B/V
#> 118 TRUE K/Z
#> 119 FALSE D/W
#> 120 FALSE O/H
#> 121 FALSE C/H
#> 122 FALSE R/K
#> 123 FALSE G/N
#> 124 FALSE P/J
#> 125 TRUE F/L
#> 126 TRUE W/F
#> 127 FALSE Z/A
#> 128 FALSE R/K
#> 129 TRUE C/S
#> 130 TRUE J/O
#> 131 FALSE X/H
#> 132 TRUE I/I
#> 133 FALSE R/D
#> 134 TRUE T/R
#> 135 TRUE Z/O
#> 136 FALSE Z/Q
#> 137 TRUE Y/R
#> 138 FALSE N/G
#> 139 TRUE E/O
#> 140 TRUE R/Y
#> 141 TRUE O/P
#> 142 FALSE J/C
#> 143 TRUE P/G
#> 144 FALSE I/D
#> 145 FALSE H/B
#> 146 FALSE O/L
#> 147 TRUE C/U
#> 148 TRUE L/U
#> 149 TRUE D/X
#> 150 TRUE F/Z
#> 151 FALSE T/G
#> 152 TRUE T/V
#> 153 TRUE U/M
#> 154 TRUE R/Z
#> 155 TRUE R/K
#> 156 TRUE W/P
#> 157 FALSE W/Q
#> 158 FALSE D/A
#> 159 FALSE M/Y
#> 160 TRUE A/N
#> 161 FALSE Q/N
#> 162 TRUE R/U
#> 163 TRUE E/A
#> 164 TRUE O/P
#> 165 FALSE S/H
#> 166 TRUE P/I
#> 167 FALSE P/R
#> 168 FALSE S/S
#> 169 TRUE W/Y
#> 170 TRUE U/G
#> 171 TRUE O/U
#> 172 TRUE W/I
#> 173 TRUE A/X
#> 174 TRUE M/U
#> 175 TRUE Z/A
#> 176 TRUE Y/C
#> 177 FALSE X/X
#> 178 TRUE F/Z
#> 179 FALSE C/J
#> 180 FALSE L/J
#> 181 FALSE O/A
#> 182 TRUE D/L
#> 183 TRUE B/M
#> 184 TRUE C/N
#> 185 FALSE I/K
#> 186 FALSE Y/C
#> 187 FALSE M/B
#> 188 TRUE R/B
#> 189 TRUE Q/F
#> 190 FALSE P/E
#> 191 TRUE U/E
#> 192 TRUE Q/R
#> 193 FALSE B/L
#> 194 FALSE T/F
#> 195 FALSE E/N
#> 196 FALSE Y/U
#> 197 FALSE I/Q
#> 198 TRUE R/E
#> 199 FALSE Y/H
#> 200 TRUE J/R
st_as_sf(list_rbind(list(nc, nc_modified)))
#> Simple feature collection with 200 features and 16 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 sep_test_col
#> 1 10 1364 0 19 NA <NA>
#> 2 10 542 3 12 NA <NA>
#> 3 208 3616 6 260 NA <NA>
#> 4 123 830 2 145 NA <NA>
#> 5 1066 1606 3 1197 NA <NA>
#> 6 954 1838 5 1237 NA <NA>
#> 7 115 350 2 139 NA <NA>
#> 8 254 594 2 371 NA <NA>
#> 9 748 1190 2 844 NA <NA>
#> 10 160 2038 5 176 NA <NA>
#> 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...
# separate_wider_delim (and separate_wider_regex()) drops the sf class but retains the geometry column
# Related GitHub issue: https://github.com/tidyverse/tidyr/pull/1372
nc_modified |>
separate_wider_delim(
cols = sep_test_col,
delim = "/",
names = c("letter_1", "letter_2")
)
#> # A tibble: 100 × 18
#> AREA PERIMETER CNTY_ CNTY_ID NAME FIPS FIPSNO CRESS_ID BIR74 SID74 NWBIR74
#> <dbl> <dbl> <dbl> <dbl> <chr> <chr> <dbl> <int> <dbl> <dbl> <dbl>
#> 1 0.114 1.44 1825 1825 Ashe 37009 37009 5 1091 1 10
#> 2 0.061 1.23 1827 1827 Alle… 37005 37005 3 487 0 10
#> 3 0.143 1.63 1828 1828 Surry 37171 37171 86 3188 5 208
#> 4 0.07 2.97 1831 1831 Curr… 37053 37053 27 508 1 123
#> 5 0.153 2.21 1832 1832 Nort… 37131 37131 66 1421 9 1066
#> 6 0.097 1.67 1833 1833 Hert… 37091 37091 46 1452 7 954
#> 7 0.062 1.55 1834 1834 Camd… 37029 37029 15 286 0 115
#> 8 0.091 1.28 1835 1835 Gates 37073 37073 37 420 0 254
#> 9 0.118 1.42 1836 1836 Warr… 37185 37185 93 968 4 748
#> 10 0.124 1.43 1837 1837 Stok… 37169 37169 85 1612 1 160
#> # ℹ 90 more rows
#> # ℹ 7 more variables: BIR79 <dbl>, SID79 <dbl>, NWBIR79 <dbl>,
#> # geometry <MULTIPOLYGON [°]>, SID_increase <lgl>, letter_1 <chr>,
#> # letter_2 <chr>
# Convert the data frame back to an sf object when using this function
nc_modified |>
separate_wider_delim(
cols = sep_test_col,
delim = "/",
names = c("letter_1", "letter_2")
) |>
st_as_sf()
#> Simple feature collection with 100 features and 17 fields
#> Geometry type: MULTIPOLYGON
#> Dimension: XY
#> Bounding box: xmin: -84.32385 ymin: 33.88199 xmax: -75.45698 ymax: 36.58965
#> Geodetic CRS: NAD27
#> # A tibble: 100 × 18
#> AREA PERIMETER CNTY_ CNTY_ID NAME FIPS FIPSNO CRESS_ID BIR74 SID74 NWBIR74
#> <dbl> <dbl> <dbl> <dbl> <chr> <chr> <dbl> <int> <dbl> <dbl> <dbl>
#> 1 0.114 1.44 1825 1825 Ashe 37009 37009 5 1091 1 10
#> 2 0.061 1.23 1827 1827 Alle… 37005 37005 3 487 0 10
#> 3 0.143 1.63 1828 1828 Surry 37171 37171 86 3188 5 208
#> 4 0.07 2.97 1831 1831 Curr… 37053 37053 27 508 1 123
#> 5 0.153 2.21 1832 1832 Nort… 37131 37131 66 1421 9 1066
#> 6 0.097 1.67 1833 1833 Hert… 37091 37091 46 1452 7 954
#> 7 0.062 1.55 1834 1834 Camd… 37029 37029 15 286 0 115
#> 8 0.091 1.28 1835 1835 Gates 37073 37073 37 420 0 254
#> 9 0.118 1.42 1836 1836 Warr… 37185 37185 93 968 4 748
#> 10 0.124 1.43 1837 1837 Stok… 37169 37169 85 1612 1 160
#> # ℹ 90 more rows
#> # ℹ 7 more variables: BIR79 <dbl>, SID79 <dbl>, NWBIR79 <dbl>,
#> # geometry <MULTIPOLYGON [°]>, SID_increase <lgl>, letter_1 <chr>,
#> # letter_2 <chr>
Created on 2024-10-30 with reprex v2.1.1