Running ‘aggregate.R’ [2s/4s]
  Comparing ‘aggregate.Rout’ to ‘aggregate.Rout.save’ ... OK
  Running ‘cast.R’ [3s/5s]
  Comparing ‘cast.Rout’ to ‘cast.Rout.save’ ... OK
  Running ‘crs.R’ [2s/3s]
  Comparing ‘crs.Rout’ to ‘crs.Rout.save’ ...61a62,63
> proj_create: Error 1027 (Invalid value for an argument): Unknown projection
> proj_create: Error 1027 (Invalid value for an argument): Unknown projection
  Running ‘dist.R’ [2s/5s]
  Comparing ‘dist.Rout’ to ‘dist.Rout.save’ ... OK
  Running ‘dplyr.R’ [4s/6s]
  Comparing ‘dplyr.Rout’ to ‘dplyr.Rout.save’ ... OK
  Running ‘empty.R’ [2s/3s]
  Comparing ‘empty.Rout’ to ‘empty.Rout.save’ ... OK
  Running ‘gdal_geom.R’ [3s/5s]
  Comparing ‘gdal_geom.Rout’ to ‘gdal_geom.Rout.save’ ... OK
  Running ‘geos.R’ [31s/45s]
  Comparing ‘geos.Rout’ to ‘geos.Rout.save’ ... OK
  Running ‘graticule.R’ [3s/5s]
  Comparing ‘graticule.Rout’ to ‘graticule.Rout.save’ ... OK
  Running ‘grid.R’ [3s/3s]
  Comparing ‘grid.Rout’ to ‘grid.Rout.save’ ... OK
  Running ‘maps.R’ [3s/4s]
  Comparing ‘maps.Rout’ to ‘maps.Rout.save’ ... OK
  Running ‘plot.R’ [9s/12s]
  Comparing ‘plot.Rout’ to ‘plot.Rout.save’ ... OK
  Running ‘read.R’ [3s/6s]
  Comparing ‘read.Rout’ to ‘read.Rout.save’ ...340,341c340
<   `/home/hornik/tmp/R.check/r-devel-gcc/Work/PKGS/sf.Rcheck/tests/tst__.gpkg' 
<   using driver `GPKG'
---
>   `/home/edzer/git/sf.Rcheck/tests/tst__.gpkg' using driver `GPKG'
  Running ‘roundtrip.R’ [3s/3s]
  Comparing ‘roundtrip.Rout’ to ‘roundtrip.Rout.save’ ... OK
  Running ‘s2.R’ [3s/5s]
  Comparing ‘s2.Rout’ to ‘s2.Rout.save’ ... OK
  Running ‘sample.R’ [2s/3s]
  Comparing ‘sample.Rout’ to ‘sample.Rout.save’ ... OK
  Running ‘sfc.R’ [3s/4s]
  Running ‘sfg.R’ [2s/2s]
  Comparing ‘sfg.Rout’ to ‘sfg.Rout.save’ ... OK
  Running ‘spatstat.R’ [5s/9s]
  Comparing ‘spatstat.Rout’ to ‘spatstat.Rout.save’ ...114c114
< spatstat.random 3.1-4
---
> spatstat.random 3.1-3
137c137
< Error in spatstat_fun(..., win = spatstat.geom::as.owin(x)) : 
---
> Error in check.1.real(scale) : 
  Running ‘stars.R’ [5s/8s]
  Comparing ‘stars.Rout’ to ‘stars.Rout.save’ ... OK
  Running ‘testthat.R’ [19s/28s]
  Running ‘units.R’ [2s/3s]
  Comparing ‘units.Rout’ to ‘units.Rout.save’ ... OK
  Running ‘wkb.R’ [2s/3s]
  Comparing ‘wkb.Rout’ to ‘wkb.Rout.save’ ... OK
Running the tests in ‘tests/sfc.R’ failed.
Complete output:
  > suppressPackageStartupMessages(library(sf))
  > 
  > p = st_point(c(1/3,1/6))
  > st_sfc(p, precision = 1000)
  Geometry set for 1 feature 
  Geometry type: POINT
  Dimension:     XY
  Bounding box:  xmin: 0.3333333 ymin: 0.1666667 xmax: 0.3333333 ymax: 0.1666667
  CRS:           NA
  Precision:     1000 
  POINT (0.3333333 0.1666667)
  > st_as_sfc(st_as_binary(st_sfc(p, precision = 0L)))
  Geometry set for 1 feature 
  Geometry type: POINT
  Dimension:     XY
  Bounding box:  xmin: 0.3333333 ymin: 0.1666667 xmax: 0.3333333 ymax: 0.1666667
  CRS:           NA
  POINT (0.3333333 0.1666667)
  > st_as_sfc(st_as_binary(st_sfc(p, precision = 1000)))
  Geometry set for 1 feature 
  Geometry type: POINT
  Dimension:     XY
  Bounding box:  xmin: 0.333 ymin: 0.167 xmax: 0.333 ymax: 0.167
  CRS:           NA
  POINT (0.333 0.167)
  > st_as_sfc(st_as_binary(st_sfc(p, precision = 1000000)))
  Geometry set for 1 feature 
  Geometry type: POINT
  Dimension:     XY
  Bounding box:  xmin: 0.333333 ymin: 0.166667 xmax: 0.333333 ymax: 0.166667
  CRS:           NA
  POINT (0.333333 0.166667)
  > st_as_sfc(st_as_binary(st_sfc(p, precision = 10L)))
  Geometry set for 1 feature 
  Geometry type: POINT
  Dimension:     XY
  Bounding box:  xmin: 0.3 ymin: 0.2 xmax: 0.3 ymax: 0.2
  CRS:           NA
  POINT (0.3 0.2)
  > st_as_sfc(st_as_binary(st_sfc(p, precision = -1)))
  Geometry set for 1 feature 
  Geometry type: POINT
  Dimension:     XY
  Bounding box:  xmin: 0.3333333 ymin: 0.1666667 xmax: 0.3333333 ymax: 0.1666667
  CRS:           NA
  POINT (0.3333333 0.1666667)
  > 
  > d = data.frame(a = 1:2)
  > d$geom = c("POINT(0 0)", "POINT(1 1)")
  > 
  > st_as_sf(d, wkt = "geom")
  Simple feature collection with 2 features and 1 field
  Geometry type: POINT
  Dimension:     XY
  Bounding box:  xmin: 0 ymin: 0 xmax: 1 ymax: 1
  CRS:           NA
    a        geom
  1 1 POINT (0 0)
  2 2 POINT (1 1)
  > st_as_sf(d, wkt = 2)
  Simple feature collection with 2 features and 1 field
  Geometry type: POINT
  Dimension:     XY
  Bounding box:  xmin: 0 ymin: 0 xmax: 1 ymax: 1
  CRS:           NA
    a        geom
  1 1 POINT (0 0)
  2 2 POINT (1 1)
  > st_as_sf(d, wkt = "geom", remove = FALSE)
  Simple feature collection with 2 features and 2 fields
  Geometry type: POINT
  Dimension:     XY
  Bounding box:  xmin: 0 ymin: 0 xmax: 1 ymax: 1
  CRS:           NA
    a       geom    geometry
  1 1 POINT(0 0) POINT (0 0)
  2 2 POINT(1 1) POINT (1 1)
  > 
  > st_as_sfc(c("POINT(0 0)", "POINT(1 1)"))
  Geometry set for 2 features 
  Geometry type: POINT
  Dimension:     XY
  Bounding box:  xmin: 0 ymin: 0 xmax: 1 ymax: 1
  CRS:           NA
  POINT (0 0)
  POINT (1 1)
  > st_as_sfc(c("POINT(0 0)", "POINT(1 1)", "POLYGON((0 0,1 1,0 1,0 0))"))
  Geometry set for 3 features 
  Geometry type: GEOMETRY
  Dimension:     XY
  Bounding box:  xmin: 0 ymin: 0 xmax: 1 ymax: 1
  CRS:           NA
  POINT (0 0)
  POINT (1 1)
  POLYGON ((0 0, 1 1, 0 1, 0 0))
  > st_as_sfc(character(0))
  Geometry set for 0 features 
  Bounding box:  xmin: NA ymin: NA xmax: NA ymax: NA
  CRS:           NA
  > x = st_as_sfc(character(0), 4326)
  > y = st_as_sfc(character(0), crs = 4326)
  > all.equal(x, y)
  [1] TRUE
  > st_as_sfc(c("POINT(0 0)", "POINT(1 1)", "POLYGON((0 0,1 1,0 1,0 0))"),
  + 	"+proj=longlat +datum=WGS84")
  Geometry set for 3 features 
  Geometry type: GEOMETRY
  Dimension:     XY
  Bounding box:  xmin: 0 ymin: 0 xmax: 1 ymax: 1
  Geodetic CRS:  +proj=longlat +datum=WGS84
  POINT (0 0)
  POINT (1 1)
  POLYGON ((0 0, 1 1, 0 1, 0 0))
  > dg = st_as_sf(d, wkt = "geom")
  > print(dg, n = 1)
  Simple feature collection with 2 features and 1 field
  Geometry type: POINT
  Dimension:     XY
  Bounding box:  xmin: 0 ymin: 0 xmax: 1 ymax: 1
  CRS:           NA
  First 1 features:
    a        geom
  1 1 POINT (0 0)
  > head(st_as_sf(d, wkt = "geom"), 1)
  Simple feature collection with 1 feature and 1 field
  Geometry type: POINT
  Dimension:     XY
  Bounding box:  xmin: 0 ymin: 0 xmax: 0 ymax: 0
  CRS:           NA
    a        geom
  1 1 POINT (0 0)
  > 
  > d$geom = st_as_sfc(d$geom)
  > d1 = d
  > attr(d1, "sf_col") = "geom"
  > st_geometry(d1) = d$geom
  > 
  > d$geometry = d$geom # second geometry list-column
  > if (require(testthat, quietly = TRUE)) {
  +  expect_warning(st_geometry(d) <- d$geom)
  + }
  > d
  Simple feature collection with 2 features and 1 field
  Active geometry column: geom
  Geometry type: POINT
  Dimension:     XY
  Bounding box:  xmin: 0 ymin: 0 xmax: 1 ymax: 1
  CRS:           NA
    a        geom    geometry
  1 1 POINT (0 0) POINT (0 0)
  2 2 POINT (1 1) POINT (1 1)
  > 
  > x = st_sfc(list(st_point(0:1), st_point(0:1)), crs = 4326)
  > # don't warn when replacing crs with identical value:
  > st_sfc(x, crs = 4326)
  Geometry set for 2 features 
  Geometry type: POINT
  Dimension:     XY
  Bounding box:  xmin: 0 ymin: 1 xmax: 0 ymax: 1
  Geodetic CRS:  WGS 84
  POINT (0 1)
  POINT (0 1)
  > y = st_sfc(x, crs = "+proj=longlat +datum=WGS84 +no_defs")
  > # but do when it changes:
  > y = st_sfc(x, crs = 3857)
  Warning message:
  st_crs<- : replacing crs does not reproject data; use st_transform for that 
  > 
  > p = st_point(0:1)
  > st_cast(p, "MULTIPOINT")
  MULTIPOINT ((0 1))
  > mp = st_multipoint(rbind(c(0,1), c(2,2)))
  > st_cast(mp, "POINT")
  POINT (0 1)
  Warning message:
  In st_cast.MULTIPOINT(mp, "POINT") : point from first coordinate only
  > st_cast(mp, "MULTIPOINT")
  MULTIPOINT ((0 1), (2 2))
  > 
  > # geometry collection to its elements:
  > st_cast(st_geometrycollection(list(mp)), "POINT")
  POINT (0 1)
  Warning message:
  In st_cast.MULTIPOINT(x[[1]], to, ...) : point from first coordinate only
  > st_cast(st_geometrycollection(list(mp)), "MULTIPOINT")
  MULTIPOINT ((0 1), (2 2))
  > st_cast(st_geometrycollection(list(p,mp)), "MULTIPOINT")
  MULTIPOINT ((0 1))
  Warning message:
  In st_cast.GEOMETRYCOLLECTION(st_geometrycollection(list(p, mp)),  :
    only first part of geometrycollection is retained
  > 
  > mp = st_multipoint(rbind(c(0,1)))
  > x = st_sfc(p, mp)
  > st_cast(x, "POINT")
  Geometry set for 2 features 
  Geometry type: POINT
  Dimension:     XY
  Bounding box:  xmin: 0 ymin: 1 xmax: 0 ymax: 1
  CRS:           NA
  POINT (0 1)
  POINT (0 1)
  Warning message:
  In st_cast.MULTIPOINT(X[[i]], ...) : point from first coordinate only
  > 
  > sf = st_sf(a = 3:2, geom = x)
  > st_cast(sf, "POINT")
  Simple feature collection with 2 features and 1 field
  Geometry type: POINT
  Dimension:     XY
  Bounding box:  xmin: 0 ymin: 1 xmax: 0 ymax: 1
  CRS:           NA
    a        geom
  1 3 POINT (0 1)
  2 2 POINT (0 1)
  Warning message:
  In st_cast.MULTIPOINT(X[[i]], ...) : point from first coordinate only
  > 
  > 
  > x %>% st_cast("POINT")
  Geometry set for 2 features 
  Geometry type: POINT
  Dimension:     XY
  Bounding box:  xmin: 0 ymin: 1 xmax: 0 ymax: 1
  CRS:           NA
  POINT (0 1)
  POINT (0 1)
  Warning message:
  In st_cast.MULTIPOINT(X[[i]], ...) : point from first coordinate only
  > 
  > # points:
  > mp = st_multipoint(rbind(c(0,1))) # single-point multipoint
  > st_sfc(p,mp) %>% st_cast("POINT")
  Geometry set for 2 features 
  Geometry type: POINT
  Dimension:     XY
  Bounding box:  xmin: 0 ymin: 1 xmax: 0 ymax: 1
  CRS:           NA
  POINT (0 1)
  POINT (0 1)
  Warning message:
  In st_cast.MULTIPOINT(X[[i]], ...) : point from first coordinate only
  > st_sfc(p,mp) %>% st_cast("MULTIPOINT")
  Geometry set for 2 features 
  Geometry type: MULTIPOINT
  Dimension:     XY
  Bounding box:  xmin: 0 ymin: 1 xmax: 0 ymax: 1
  CRS:           NA
  MULTIPOINT ((0 1))
  MULTIPOINT ((0 1))
  > 
  > # lines:
  > pts = rbind(c(0,0), c(1,1), c(2,1))
  > st_sfc(st_linestring(pts), st_multilinestring(list(pts))) %>% st_cast("LINESTRING")
  Geometry set for 2 features 
  Geometry type: LINESTRING
  Dimension:     XY
  Bounding box:  xmin: 0 ymin: 0 xmax: 2 ymax: 1
  CRS:           NA
  LINESTRING (0 0, 1 1, 2 1)
  LINESTRING (0 0, 1 1, 2 1)
  > st_sfc(st_linestring(pts), st_multilinestring(list(pts))) %>% st_cast("MULTILINESTRING")
  Geometry set for 2 features 
  Geometry type: MULTILINESTRING
  Dimension:     XY
  Bounding box:  xmin: 0 ymin: 0 xmax: 2 ymax: 1
  CRS:           NA
  MULTILINESTRING ((0 0, 1 1, 2 1))
  MULTILINESTRING ((0 0, 1 1, 2 1))
  > 
  > # polygons:
  > pts = rbind(c(0,0), c(1,1), c(0,1), c(0,0))
  > st_sfc(st_polygon(list(pts)), st_multipolygon(list(list(pts)))) %>% st_cast("POLYGON")
  Geometry set for 2 features 
  Geometry type: POLYGON
  Dimension:     XY
  Bounding box:  xmin: 0 ymin: 0 xmax: 1 ymax: 1
  CRS:           NA
  POLYGON ((0 0, 1 1, 0 1, 0 0))
  POLYGON ((0 0, 1 1, 0 1, 0 0))
  > st_sfc(st_polygon(list(pts)), st_multipolygon(list(list(pts)))) %>% st_cast("MULTIPOLYGON")
  Geometry set for 2 features 
  Geometry type: MULTIPOLYGON
  Dimension:     XY
  Bounding box:  xmin: 0 ymin: 0 xmax: 1 ymax: 1
  CRS:           NA
  MULTIPOLYGON (((0 0, 1 1, 0 1, 0 0)))
  MULTIPOLYGON (((0 0, 1 1, 0 1, 0 0)))
  > 
  > 
  > st_sfc(st_geometrycollection(list(p)), st_geometrycollection(list(mp))) %>% st_cast()
  Geometry set for 2 features 
  Geometry type: GEOMETRY
  Dimension:     XY
  Bounding box:  xmin: 0 ymin: 1 xmax: 0 ymax: 1
  CRS:           NA
  POINT (0 1)
  MULTIPOINT ((0 1))
  > st_sfc(st_geometrycollection(list(p)), st_geometrycollection(list(mp))) %>%
  + 	st_cast() %>%
  + 	st_cast("POINT")
  Geometry set for 2 features 
  Geometry type: POINT
  Dimension:     XY
  Bounding box:  xmin: 0 ymin: 1 xmax: 0 ymax: 1
  CRS:           NA
  POINT (0 1)
  POINT (0 1)
  Warning message:
  In st_cast.MULTIPOINT(X[[i]], ...) : point from first coordinate only
  > 
  > p = rbind(c(0,0),c(1,0),c(1,1),c(0,1),c(0,0))
  > pol = st_polygon(list(p))
  > # plot(pol)
  > try(plot(st_polygonize(pol))) # --> breaks
  Error in st_polygonize.sfc(st_sfc(x)) : 
    inherits(x, "sfc_LINESTRING") || inherits(x, "sfc_MULTILINESTRING") is not TRUE
  > st_length(st_sfc(st_point(c(0,0))))
  [1] 0
  > 
  > try(as(st_sfc(st_linestring(matrix(1:9,3))), "Spatial"))
  Error in StopZ(zm) : 
    sp supports Z dimension only for POINT and MULTIPOINT.
  use `st_zm(...)` to coerce to XY dimensions
  > 
  > # check conus is present:
  > x = st_sfc(st_point(c(-90,35)), st_point(c(-80,36)),
  + 	crs = "+proj=longlat +datum=NAD27")
  > y = st_transform(x, 3857)
  > 
  > sf_extSoftVersion()[1:3]
      GEOS     GDAL   proj.4 
  "3.11.1"  "3.6.2"  "9.1.1" 
  > 
  > # Ops.sfc:
  > ls = st_sfc(st_linestring(rbind(c(0,0),c(0,1))))
  > ls * 2
  Geometry set for 1 feature 
  Geometry type: LINESTRING
  Dimension:     XY
  Bounding box:  xmin: 0 ymin: 0 xmax: 0 ymax: 2
  CRS:           NA
  LINESTRING (0 0, 0 2)
  > ls - 2
  Geometry set for 1 feature 
  Geometry type: LINESTRING
  Dimension:     XY
  Bounding box:  xmin: -2 ymin: -2 xmax: -2 ymax: -1
  CRS:           NA
  LINESTRING (-2 -2, -2 -1)
  > (ls + 2) %% 3
  Geometry set for 1 feature 
  Geometry type: LINESTRING
  Dimension:     XY
  Bounding box:  xmin: 2 ymin: 0 xmax: 2 ymax: 2
  CRS:           NA
  LINESTRING (2 2, 2 0)
  > ls / ls
  Geometry set for 1 feature  (with 1 geometry empty)
  Geometry type: GEOMETRYCOLLECTION
  Dimension:     XY
  Bounding box:  xmin: NA ymin: NA xmax: NA ymax: NA
  CRS:           NA
  GEOMETRYCOLLECTION EMPTY
  > p_ = st_point(0:1)
  > ll = st_sfc(ls[[1]], p_)
  > ll & st_sfc(p_)
  Geometry set for 2 features 
  Geometry type: POINT
  Dimension:     XY
  Bounding box:  xmin: 0 ymin: 1 xmax: 0 ymax: 1
  CRS:           NA
  POINT (0 1)
  POINT (0 1)
  > ll | st_sfc(p_)
  Geometry set for 2 features 
  Geometry type: GEOMETRY
  Dimension:     XY
  Bounding box:  xmin: 0 ymin: 0 xmax: 0 ymax: 1
  CRS:           NA
  LINESTRING (0 0, 0 1)
  POINT (0 1)
  > ll %/% st_sfc(p_)
  Geometry set for 2 features  (with 1 geometry empty)
  Geometry type: GEOMETRY
  Dimension:     XY
  Bounding box:  xmin: 0 ymin: 0 xmax: 0 ymax: 1
  CRS:           NA
  LINESTRING (0 0, 0 1)
  GEOMETRYCOLLECTION EMPTY
  > ll == st_sfc(p_)
  [1] FALSE  TRUE
  > ll != st_sfc(p_)
  [1]  TRUE FALSE
  > 
  > 
  > str(x)
  sfc_POINT of length 2; first list element:  'XY' num [1:2] -90 35
  > nc = st_read(system.file("shape/nc.shp", package="sf"), quiet = TRUE)
  > str(nc)
  Classes 'sf' and 'data.frame':	100 obs. of  15 variables:
   $ AREA     : num  0.114 0.061 0.143 0.07 0.153 0.097 0.062 0.091 0.118 0.124 ...
   $ PERIMETER: num  1.44 1.23 1.63 2.97 2.21 ...
   $ CNTY_    : num  1825 1827 1828 1831 1832 ...
   $ CNTY_ID  : num  1825 1827 1828 1831 1832 ...
   $ NAME     : chr  "Ashe" "Alleghany" "Surry" "Currituck" ...
   $ FIPS     : chr  "37009" "37005" "37171" "37053" ...
   $ FIPSNO   : num  37009 37005 37171 37053 37131 ...
   $ CRESS_ID : int  5 3 86 27 66 46 15 37 93 85 ...
   $ BIR74    : num  1091 487 3188 508 1421 ...
   $ SID74    : num  1 0 5 1 9 7 0 0 4 1 ...
   $ NWBIR74  : num  10 10 208 123 1066 ...
   $ BIR79    : num  1364 542 3616 830 1606 ...
   $ SID79    : num  0 3 6 2 3 5 2 2 2 5 ...
   $ NWBIR79  : num  19 12 260 145 1197 ...
   $ geometry :sfc_MULTIPOLYGON of length 100; first list element: List of 1
    ..$ :List of 1
    .. ..$ : num [1:27, 1:2] -81.5 -81.5 -81.6 -81.6 -81.7 ...
    ..- attr(*, "class")= chr [1:3] "XY" "MULTIPOLYGON" "sfg"
   - attr(*, "sf_column")= chr "geometry"
   - attr(*, "agr")= Factor w/ 3 levels "constant","aggregate",..: NA NA NA NA NA NA NA NA NA NA ...
    ..- attr(*, "names")= chr [1:14] "AREA" "PERIMETER" "CNTY_" "CNTY_ID" ...
  > bb = st_as_sfc(st_bbox(nc))
  > format(st_bbox(nc))
  [1] "((-84.32385,33.88199),(-75.45698,36.58965))"
  > 
  > st_agr("constant")
  [1] constant
  Levels: constant aggregate identity
  > st_agr()
  [1] <NA>
  Levels: constant aggregate identity
  > x <- st_sf(a = 1:2, b = 3:4, geom = x, agr = c("constant", "aggregate"))
  > y <- x %>% st_set_agr("constant")
  > y
  Simple feature collection with 2 features and 2 fields
  Attribute-geometry relationship: 2 constant, 0 aggregate, 0 identity
  Geometry type: POINT
  Dimension:     XY
  Bounding box:  xmin: -90 ymin: 35 xmax: -80 ymax: 36
  Geodetic CRS:  +proj=longlat +datum=NAD27
    a b           geom
  1 1 3 POINT (-90 35)
  2 2 4 POINT (-80 36)
  > 
  > sf1 <- st_sf(a = c("x", "y"), geom = st_sfc(st_point(3:4), st_point(3:4)))
  > sf1[names(sf1)]
  Simple feature collection with 2 features and 1 field
  Geometry type: POINT
  Dimension:     XY
  Bounding box:  xmin: 3 ymin: 4 xmax: 3 ymax: 4
  CRS:           NA
    a        geom
  1 x POINT (3 4)
  2 y POINT (3 4)
  > 
  > st_bbox(sf1)
  xmin ymin xmax ymax 
     3    4    3    4 
  > bb = st_bbox(nc)
  > bb
       xmin      ymin      xmax      ymax 
  -84.32385  33.88199 -75.45698  36.58965 
  > st_crs(bb)
  Coordinate Reference System:
    User input: NAD27 
    wkt:
  GEOGCRS["NAD27",
      DATUM["North American Datum 1927",
          ELLIPSOID["Clarke 1866",6378206.4,294.978698213898,
              LENGTHUNIT["metre",1]]],
      PRIMEM["Greenwich",0,
          ANGLEUNIT["degree",0.0174532925199433]],
      CS[ellipsoidal,2],
          AXIS["latitude",north,
              ORDER[1],
              ANGLEUNIT["degree",0.0174532925199433]],
          AXIS["longitude",east,
              ORDER[2],
              ANGLEUNIT["degree",0.0174532925199433]],
      ID["EPSG",4267]]
  > st_bbox(c(xmin = 16.1, xmax = 16.6, ymin = 48.6, ymax = 47.9), crs = st_crs(4326))
  xmin ymin xmax ymax 
  16.1 48.6 16.6 47.9 
  > st_bbox(c(xmin = 16.1, xmax = 16.6, ymin = 48.6, ymax = 47.9), crs = 4326)
  xmin ymin xmax ymax 
  16.1 48.6 16.6 47.9 
  > 
  > bb$xrange
       xmin      xmax 
  -84.32385 -75.45698 
  > bb$yrange
      ymin     ymax 
  33.88199 36.58965 
  > bb$xmin
       xmin 
  -84.32385 
  > bb$ymin
      ymin 
  33.88199 
  > bb$xmax
       xmax 
  -75.45698 
  > bb$ymax
      ymax 
  36.58965 
  > try(bb$foo)
  Error in `$.bbox`(bb, foo) : unsupported name
  > 
  > # merge:
  > a = data.frame(a = 1:3, b = 5:7)
  > st_geometry(a) = st_sfc(st_point(c(0,0)), st_point(c(1,1)), st_point(c(2,2)))
  > b = data.frame(x = c("a", "b", "c"), b = c(2,5,6))
  > merge(a, b)
  Simple feature collection with 2 features and 3 fields
  Geometry type: POINT
  Dimension:     XY
  Bounding box:  xmin: 0 ymin: 0 xmax: 1 ymax: 1
  CRS:           NA
    b a x    geometry
  1 5 1 b POINT (0 0)
  2 6 2 c POINT (1 1)
  > merge(a, b, all = TRUE)
  Simple feature collection with 4 features and 3 fields (with 1 geometry empty)
  Geometry type: GEOMETRY
  Dimension:     XY
  Bounding box:  xmin: 0 ymin: 0 xmax: 2 ymax: 2
  CRS:           NA
    b  a    x                 geometry
  1 2 NA    a GEOMETRYCOLLECTION EMPTY
  2 5  1    b              POINT (0 0)
  3 6  2    c              POINT (1 1)
  4 7  3 <NA>              POINT (2 2)
  > 
  > if (require(dplyr, quietly = TRUE)) {
  + # joins:
  + inner_join(a, b)
  + left_join(a, b)
  + right_join(a, b)
  + full_join(a, b)
  + semi_join(a, b)
  + anti_join(a, b)
  + left_join(a, data.frame(b, geometry = 1), by = "b")
  + }
  
  Attaching package: 'dplyr'
  
  The following object is masked from 'package:testthat':
  
      matches
  
  The following objects are masked from 'package:stats':
  
      filter, lag
  
  The following objects are masked from 'package:base':
  
      intersect, setdiff, setequal, union
  
  Joining with `by = join_by(b)`
  Joining with `by = join_by(b)`
  Joining with `by = join_by(b)`
  Error in vectbl_assign(x[[j]], i, recycled_value[[j]]) : 
    DLL requires the use of native symbols
  Calls: right_join ... tbl_subassign_row -> withCallingHandlers -> vectbl_assign
  Execution halted