Running 'aggregate.R' [3s]
  Comparing 'aggregate.Rout' to 'aggregate.Rout.save' ...4c4
< Linking to GEOS 3.9.1, GDAL 3.4.3, PROJ 7.2.1; sf_use_s2() is TRUE
---
> Linking to GEOS 3.10.2, GDAL 3.4.3, PROJ 8.2.0; sf_use_s2() is TRUE
  Running 'cast.R' [4s]
  Comparing 'cast.Rout' to 'cast.Rout.save' ... OK
  Running 'crs.R' [3s]
  Comparing 'crs.Rout' to 'crs.Rout.save' ...81c81,117
<  
---
> GEOGCRS["WGS 84",
>     ENSEMBLE["World Geodetic System 1984 ensemble",
>         MEMBER["World Geodetic System 1984 (Transit)",
>             ID["EPSG",1166]],
>         MEMBER["World Geodetic System 1984 (G730)",
>             ID["EPSG",1152]],
>         MEMBER["World Geodetic System 1984 (G873)",
>             ID["EPSG",1153]],
>         MEMBER["World Geodetic System 1984 (G1150)",
>             ID["EPSG",1154]],
>         MEMBER["World Geodetic System 1984 (G1674)",
>             ID["EPSG",1155]],
>         MEMBER["World Geodetic System 1984 (G1762)",
>             ID["EPSG",1156]],
>         MEMBER["World Geodetic System 1984 (G2139)",
>             ID["EPSG",1309]],
>         ELLIPSOID["WGS 84",6378137,298.257223563,
>             LENGTHUNIT["metre",1],
>             ID["EPSG",7030]],
>         ENSEMBLEACCURACY[2.0],
>         ID["EPSG",6326]],
>     PRIMEM["Greenwich",0,
>         ANGLEUNIT["degree",0.0174532925199433],
>         ID["EPSG",8901]],
>     CS[ellipsoidal,2],
>         AXIS["longitude",east,
>             ORDER[1],
>             ANGLEUNIT["degree",0.0174532925199433,
>                 ID["EPSG",9122]]],
>         AXIS["latitude",north,
>             ORDER[2],
>             ANGLEUNIT["degree",0.0174532925199433,
>                 ID["EPSG",9122]]],
>     USAGE[
>         SCOPE["unknown"],
>         AREA["World."],
>         BBOX[-90,-180,90,180]]] 
83c119
<   User input: +init=epsg:4326 
---
>   User input: WGS 84 
86c122,136
<     DATUM["World Geodetic System 1984",
---
>     ENSEMBLE["World Geodetic System 1984 ensemble",
>         MEMBER["World Geodetic System 1984 (Transit)",
>             ID["EPSG",1166]],
>         MEMBER["World Geodetic System 1984 (G730)",
>             ID["EPSG",1152]],
>         MEMBER["World Geodetic System 1984 (G873)",
>             ID["EPSG",1153]],
>         MEMBER["World Geodetic System 1984 (G1150)",
>             ID["EPSG",1154]],
>         MEMBER["World Geodetic System 1984 (G1674)",
>             ID["EPSG",1155]],
>         MEMBER["World Geodetic System 1984 (G1762)",
>             ID["EPSG",1156]],
>         MEMBER["World Geodetic System 1984 (G2139)",
>             ID["EPSG",1309]],
88c138,140
<             LENGTHUNIT["metre",1]],
---
>             LENGTHUNIT["metre",1],
>             ID["EPSG",7030]],
>         ENSEMBLEACCURACY[2.0],
107c159,166
<     DATUM["World Geodetic System 1984",
---
>     ENSEMBLE["World Geodetic System 1984 ensemble",
>         MEMBER["World Geodetic System 1984 (Transit)"],
>         MEMBER["World Geodetic System 1984 (G730)"],
>         MEMBER["World Geodetic System 1984 (G873)"],
>         MEMBER["World Geodetic System 1984 (G1150)"],
>         MEMBER["World Geodetic System 1984 (G1674)"],
>         MEMBER["World Geodetic System 1984 (G1762)"],
>         MEMBER["World Geodetic System 1984 (G2139)"],
109c168,169
<             LENGTHUNIT["metre",1]]],
---
>             LENGTHUNIT["metre",1]],
>         ENSEMBLEACCURACY[2.0]],
124,126d183
< Warning message:
< In CPL_crs_from_input(x) :
<   GDAL Message 1: +init=epsg:XXXX syntax is deprecated. It might return a CRS with a non-EPSG compliant axis order.
  Running 'dist.R' [3s]
  Comparing 'dist.Rout' to 'dist.Rout.save' ...69c69
< 2.328306e-10 [m]
---
> 0 [m]
  Running 'dplyr.R' [8s]
  Comparing 'dplyr.Rout' to 'dplyr.Rout.save' ... OK
  Running 'empty.R' [3s]
  Comparing 'empty.Rout' to 'empty.Rout.save' ... OK
  Running 'gdal_geom.R' [4s]
  Comparing 'gdal_geom.Rout' to 'gdal_geom.Rout.save' ...241,245c241,245
< [1,] 1760230516 0.114
< [2,]  946417787 0.061
< [3,] 2202223078 0.143
< [4,] 1074332698 0.070
< [5,] 2352528086 0.153
---
> [1,] 1760244967 0.114
> [2,]  946435667 0.061
> [3,] 2202248253 0.143
> [4,] 1074351919 0.070
> [5,] 2352539533 0.153
  Running 'geos.R' [29s]
  Comparing 'geos.Rout' to 'geos.Rout.save' ...13,22c13,22
<  [1,]      0.00      0.00  25651.99 440561.48 299772.34 361529.73 419671.66
<  [2,]      0.00      0.00      0.00 409429.44 268945.05 332590.52 388545.58
<  [3,]  25651.99      0.00      0.00 367556.52 227018.38 290298.04 346669.14
<  [4,] 440561.48 409429.44 367556.52      0.00  67226.86  45537.62      0.00
<  [5,] 299772.34 268945.05 227018.38  67226.86      0.00      0.00  46527.56
<  [6,] 361529.73 332590.52 290298.04  45537.62      0.00      0.00  30213.17
<  [7,] 419671.66 388545.58 346669.14      0.00  46527.56  30213.17      0.00
<  [8,] 384593.29 354295.06 312351.76  16130.19  11926.86      0.00      0.00
<  [9,] 262353.97 231217.73 189310.73 140455.97      0.00  64606.27 119564.00
< [10,]  71138.53  41943.71      0.00 330752.58 190183.42 252373.26 309863.33
---
>  [1,]      0.00      0.00  25652.53 440561.15 299772.18 361529.53 419671.2
>  [2,]      0.00      0.00      0.00 409428.54 268944.31 332589.77 388544.5
>  [3,]  25652.53      0.00      0.00 367555.48 227017.51 290297.10 346667.9
>  [4,] 440561.15 409428.54 367555.48      0.00  67226.86  45537.55      0.0
>  [5,] 299772.18 268944.31 227017.51  67226.86      0.00      0.00  46527.4
>  [6,] 361529.53 332589.77 290297.10  45537.55      0.00      0.00  30213.0
>  [7,] 419671.16 388544.52 346667.93      0.00  46527.40  30213.00      0.0
>  [8,] 384592.90 354294.11 312350.68  16130.34  11926.81      0.00      0.0
>  [9,] 262354.29 231217.49 189310.35 140455.87      0.00  64606.24 119563.7
> [10,]  71139.29  41943.83      0.00 330751.39 190182.39 252372.06 309862.0
24,33c24,33
<  [1,] 384593.29 262353.97  71138.53
<  [2,] 354295.06 231217.73  41943.71
<  [3,] 312351.76 189310.73      0.00
<  [4,]  16130.19 140455.97 330752.58
<  [5,]  11926.86      0.00 190183.42
<  [6,]      0.00  64606.27 252373.26
<  [7,]      0.00 119564.00 309863.33
<  [8,]      0.00  85533.33 275391.07
<  [9,]  85533.33      0.00 152489.45
< [10,] 275391.07 152489.45      0.00
---
>  [1,] 384592.90 262354.29  71139.29
>  [2,] 354294.11 231217.49  41943.83
>  [3,] 312350.68 189310.35      0.00
>  [4,]  16130.34 140455.87 330751.39
>  [5,]  11926.81      0.00 190182.39
>  [6,]      0.00  64606.24 252372.06
>  [7,]      0.00 119563.73 309861.97
>  [8,]      0.00  85533.12 275389.78
>  [9,]  85533.12      0.00 152488.92
> [10,] 275389.78 152488.92      0.00
147c147
< > if (isTRUE(try(compareVersion(sf_extSoftVersion()["GEOS"], "3.5.0") > -1, silent = TRUE))) {
---
> > if (compareVersion(sf_extSoftVersion()["GEOS"], "3.5.0") > -1) {
552c552
< > if (isTRUE(try(compareVersion(sf_extSoftVersion()["GEOS"], "3.7.0") > -1, silent = TRUE))) {
---
> > if (compareVersion(sf_extSoftVersion()["GEOS"], "3.7.0") > -1) {
  Running 'graticule.R' [5s]
  Comparing 'graticule.Rout' to 'graticule.Rout.save' ... OK
  Running 'grid.R' [3s]
  Comparing 'grid.Rout' to 'grid.Rout.save' ... OK
  Running 'maps.R' [5s]
  Comparing 'maps.Rout' to 'maps.Rout.save' ... OK
  Running 'plot.R' [13s]
  Comparing 'plot.Rout' to 'plot.Rout.save' ... OK
  Running 'read.R' [5s]
  Comparing 'read.Rout' to 'read.Rout.save' ...289c289
< 2 POINT (367470.5 4962415)
---
> 2 POINT (367470.5 4962414)
334,335c334
<   `D:\RCompile\CRANpkg\local\4.3\sf.Rcheck\tests\tst__.gpkg' 
<   using driver `GPKG'
---
>   `/home/edzer/git/sf.Rcheck/tests/tst__.gpkg' using driver `GPKG'
  Running 'roundtrip.R' [4s]
  Comparing 'roundtrip.Rout' to 'roundtrip.Rout.save' ... OK
  Running 's2.R' [4s]
  Comparing 's2.Rout' to 's2.Rout.save' ...4c4
< Linking to GEOS 3.9.1, GDAL 3.4.3, PROJ 7.2.1; sf_use_s2() is TRUE
---
> Linking to GEOS 3.10.2, GDAL 3.4.3, PROJ 8.2.0; sf_use_s2() is TRUE
  Running 'sample.R' [2s]
  Comparing 'sample.Rout' to 'sample.Rout.save' ... OK
  Running 'sfc.R' [15s]
  Running 'sfg.R' [2s]
  Comparing 'sfg.Rout' to 'sfg.Rout.save' ... OK
  Running 'spatstat.R' [9s]
  Comparing 'spatstat.Rout' to 'spatstat.Rout.save' ...118c118
< Bounding box:  xmin: 123829.8 ymin: 14740.06 xmax: 930518.6 ymax: 318255.5
---
> Bounding box:  xmin: 123829 ymin: 14744.69 xmax: 930521.8 ymax: 318259.9
122,131c122,131
< 1  window MULTIPOLYGON (((886135.8 31...
< 2   point      POINT (339121.1 257811.6)
< 3   point      POINT (827440.4 246568.3)
< 4   point      POINT (451339.2 207943.6)
< 5   point      POINT (268749.7 203323.4)
< 6   point      POINT (516676.5 198556.1)
< 7   point        POINT (692366 238643.1)
< 8   point      POINT (843278.5 287241.6)
< 9   point      POINT (648477.7 235466.6)
< 10  point        POINT (852593 267248.3)
---
> 1  window MULTIPOLYGON (((886136 3141...
> 2   point      POINT (339121.3 257815.9)
> 3   point      POINT (827443.1 246572.7)
> 4   point          POINT (451340 207948)
> 5   point      POINT (268749.6 203327.8)
> 6   point      POINT (516677.7 198560.6)
> 7   point        POINT (692368 238647.5)
> 8   point        POINT (843281.2 287246)
> 9   point        POINT (648479.4 235471)
> 10  point      POINT (852595.8 267252.6)
  Running 'stars.R' [6s]
  Comparing 'stars.Rout' to 'stars.Rout.save' ... OK
  Running 'testthat.R' [27s]
  Running 'units.R' [3s]
  Comparing 'units.Rout' to 'units.Rout.save' ... OK
  Running 'wkb.R' [2s]
  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
  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.9.1" "3.4.3" "7.2.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
  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, by = "b"
  Joining, by = "b"
  Joining, by = "b"
  Joining, by = "b"
  Joining, by = "b"
  Joining, by = "b"
  Simple feature collection with 3 features and 4 fields
  Geometry type: POINT
  Dimension:     XY
  Bounding box:  xmin: 0 ymin: 0 xmax: 2 ymax: 2
  CRS:           NA
    a b    x geometry.y  geometry.x
  1 1 5    b          1 POINT (0 0)
  2 2 6    c          1 POINT (1 1)
  3 3 7 <NA>         NA POINT (2 2)
  > 
  > # st_joins:
  > a = st_sf(a = 1:3,
  +  geom = st_sfc(st_point(c(1,1)), st_point(c(2,2)), st_point(c(3,3))))
  > b = st_sf(a = 11:14,
  +  geom = st_sfc(st_point(c(10,10)), st_point(c(2,2)), st_point(c(2,2)), st_point(c(3,3))))
  > st_join(a, b)
  Simple feature collection with 4 features and 2 fields
  Geometry type: POINT
  Dimension:     XY
  Bounding box:  xmin: 1 ymin: 1 xmax: 3 ymax: 3
  CRS:           NA
      a.x a.y        geom
  1     1  NA POINT (1 1)
  2     2  12 POINT (2 2)
  2.1   2  13 POINT (2 2)
  3     3  14 POINT (3 3)
  > st_join(a, b, left = FALSE)
  Simple feature collection with 3 features and 2 fields
  Geometry type: POINT
  Dimension:     XY
  Bounding box:  xmin: 2 ymin: 2 xmax: 3 ymax: 3
  CRS:           NA
      a.x a.y        geom
  2     2  12 POINT (2 2)
  2.1   2  13 POINT (2 2)
  3     3  14 POINT (3 3)
  > # st_join, largest = TRUE:
  > nc <- st_transform(st_read(system.file("shape/nc.shp", package="sf"), quiet = TRUE), 2264)
  > gr = st_sf(
  +     label = apply(expand.grid(1:10, LETTERS[10:1])[,2:1], 1, paste0, collapse = " "),
  + 	geom = st_make_grid(st_as_sfc(st_bbox(nc))))
  > gr$col = sf.colors(10, categorical = TRUE, alpha = .3)
  > # cut, to check, NA's work out:
  > gr = gr[-(1:30),]
  > st_join(nc, gr, largest = TRUE)
  Simple feature collection with 100 features and 16 fields
  Geometry type: MULTIPOLYGON
  Dimension:     XY
  Bounding box:  xmin: 406265 ymin: 48359.7 xmax: 3052877 ymax: 1044143
  Projected CRS: NAD83 / North Carolina (ftUS)
  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 label       col                       geometry
  1       10  1364     0      19  A  4 #fb80724d MULTIPOLYGON (((1270813 913...
  2       10   542     3      12  A  4 #fb80724d MULTIPOLYGON (((1340553 959...
  3      208  3616     6     260  A  5 #80b1d34d MULTIPOLYGON (((1570586 910...
  4      123   830     2     145  A 10 #bc80bd4d MULTIPOLYGON (((2881206 948...
  5     1066  1606     3    1197  A  8 #fccde54d MULTIPOLYGON (((2525700 911...
  6      954  1838     5    1237  A  9 #d9d9d94d MULTIPOLYGON (((2665112 911...
  7      115   350     2     139  A 10 #bc80bd4d MULTIPOLYGON (((2881206 948...
  8      254   594     2     371  A  9 #d9d9d94d MULTIPOLYGON (((2717988 951...
  9      748  1190     2     844  A  8 #fccde54d MULTIPOLYGON (((2203888 914...
  10     160  2038     5     176  A  5 #80b1d34d MULTIPOLYGON (((1697618 911...
  Warning message:
  attribute variables are assumed to be spatially constant throughout all geometries 
  > 
  > # rbind:
  > x = st_sf(a = 1:2, geom = st_sfc(list(st_point(0:1), st_point(0:1)), crs = 4326))
  > rbind(x, x, x)
  Simple feature collection with 6 features and 1 field
  Geometry type: POINT
  Dimension:     XY
  Bounding box:  xmin: 0 ymin: 1 xmax: 0 ymax: 1
  Geodetic CRS:  WGS 84
    a        geom
  1 1 POINT (0 1)
  2 2 POINT (0 1)
  3 1 POINT (0 1)
  4 2 POINT (0 1)
  5 1 POINT (0 1)
  6 2 POINT (0 1)
  > nc2 = rbind(nc[1:50, ], nc[51:100, ])
  > all.equal(nc, nc2)
  [1] TRUE
  > 
  > # st_sample:
  > suppressWarnings(RNGversion("3.5.3"))
  > set.seed(131)
  > options(digits=6)
  > x = st_sfc(st_polygon(list(rbind(c(0,1),c(90,1),c(90,90),c(0,90),c(0,1)))), crs = st_crs(4326))
  >   (p <- st_sample(x, 10))
  Geometry set for 10 features 
  Geometry type: POINT
  Dimension:     XY
  Bounding box:  xmin: 11.2448 ymin: 3.16385 xmax: 82.3451 ymax: 60.1703
  Geodetic CRS:  WGS 84
  First 5 geometries:
  POINT (18.5793 25.2416)
  POINT (11.2448 20.8596)
  POINT (26.3946 60.1703)
  POINT (33.8202 19.146)
  POINT (76.1712 32.1029)
  >   p <- st_sample(x[[1]], 10) # sfg method
  > x = st_sfc(st_polygon(list(rbind(c(0,0),c(90,0),c(90,90),c(0,90),c(0,0))))) # NOT long/lat:
  > p <- st_sample(x, 10)
  > x = st_sfc(st_polygon(list(rbind(c(-180,-90),c(180,-90),c(180,90),c(-180,90),c(-180,-90)))),
  +  crs=st_crs(4326))
  > #FIXME:
  > # if (sf_extSoftVersion()["proj.4"] >= "4.9.0") # lwgeom breaks on this
  > #   (p <- st_sample(x, 10))
  > pt = st_multipoint(matrix(1:20,,2))
  > st_sample(p, 3)
  Geometry set for 1 feature 
  Geometry type: MULTIPOINT
  Dimension:     XY
  Bounding box:  xmin: 41.0557 ymin: 27.8024 xmax: 80.9558 ymax: 65.5424
  CRS:           NA
  MULTIPOINT ((57.2118 52.329), (80.9558 65.5424)...
  > try(st_sample(p, 3.3))
  Geometry set for 1 feature 
  Geometry type: MULTIPOINT
  Dimension:     XY
  Bounding box:  xmin: 19.3415 ymin: 9.17624 xmax: 80.9558 ymax: 65.5424
  CRS:           NA
  MULTIPOINT ((19.3415 18.6622), (57.1389 9.17624...
  Warning message:
  In st_sample.sfc(p, 3.3) : size is not an integer
  > ls = st_sfc(st_linestring(rbind(c(0,0),c(0,1))),
  +  st_linestring(rbind(c(0,0),c(.1,0))),
  +  st_linestring(rbind(c(0,1),c(.1,1))),
  +  st_linestring(rbind(c(2,2),c(2,2.00001))))
  > st_sample(ls, 80)
  Geometry set for 4 features  (with 1 geometry empty)
  Geometry type: MULTIPOINT
  Dimension:     XY
  Bounding box:  xmin: 0 ymin: 0 xmax: 0.0914728 ymax: 1
  CRS:           NA
  MULTIPOINT ((0 0.137868), (0 0.777635), (0 0.40...
  MULTIPOINT ((0.0914728 0), (0.073852 0), (0.003...
  MULTIPOINT ((0.0488222 1), (0.0716508 1), (0.08...
  MULTIPOINT EMPTY
  > st_sample(nc[1:2,], size = c(10,20))
  Geometry set for 30 features 
  Geometry type: POINT
  Dimension:     XY
  Bounding box:  xmin: 1216510 ymin: 935852 xmax: 1428880 ymax: 1031490
  Projected CRS: NAD83 / North Carolina (ftUS)
  First 5 geometries:
  POINT (1264558 935852)
  POINT (1256623 949369)
  POINT (1222665 972624)
  POINT (1333528 968263)
  POINT (1310837 958630)
  > # try with LINES, LongLat, should generate a warning:
  > nc[1:2,] %>% st_transform(4326) %>% st_cast("MULTILINESTRING") %>% st_sample(size = c(10,20))
  although coordinates are longitude/latitude, st_sample assumes that they are planar
  although coordinates are longitude/latitude, st_sample assumes that they are planar
  Geometry set for 2 features 
  Geometry type: MULTIPOINT
  Dimension:     XY
  Bounding box:  xmin: -81.6893 ymin: 36.2491 xmax: -80.914 ymax: 36.5726
  Geodetic CRS:  WGS 84
  MULTIPOINT ((-81.2401 36.3717), (-81.6893 36.36...
  MULTIPOINT ((-81.2629 36.4076), (-81.1375 36.56...
  > st_sample(ls, 80, type = "regular")
  Geometry set for 4 features  (with 1 geometry empty)
  Geometry type: MULTIPOINT
  Dimension:     XY
  Bounding box:  xmin: 0 ymin: 0 xmax: 0.095454 ymax: 1
  CRS:           NA
  MULTIPOINT ((0 0.0104441), (0 0.0254442), (0 0....
  MULTIPOINT ((0.000452334 0), (0.0154525 0), (0....
  MULTIPOINT ((0.00545321 1), (0.0204533 1), (0.0...
  MULTIPOINT EMPTY
  > p_sample = lapply(1:10, function(i) st_sample(nc[i, ], 100, exact = FALSE))
  > lengths(p_sample)
   [1] 104 106 110  96  98 120  87 105 104  99
  > p_sample_exact = lapply(1:10, function(i) st_sample(nc[i, ], 100, exact = TRUE))
  > lengths(p_sample_exact)
   [1] 100 100 100 100 100 100 100 100 100 100
  > #plot(nc$geometry[1])
  > #plot(p_sample[[1]], add = TRUE)
  > #plot(p_sample_exact[[1]], add = TRUE)
  > 
  > if (require(dplyr, quietly = TRUE)) {
  +  #class(st_bind_cols(nc, as.data.frame(nc)[1:3]))
  +  print(class(dplyr::bind_cols(nc, as.data.frame(nc)[1:3])))
  + }
  Error in `dplyr::bind_cols()`:
  ! number of characters is not computable in "bytes" encoding, element 1
  Backtrace:
       ▆
    1. ├─base::print(class(dplyr::bind_cols(nc, as.data.frame(nc)[1:3])))
    2. ├─dplyr::bind_cols(nc, as.data.frame(nc)[1:3])
    3. │ ├─dplyr:::fix_call(vec_cbind(!!!dots, .name_repair = .name_repair))
    4. │ │ └─base::withCallingHandlers(...)
    5. │ └─vctrs::vec_cbind(!!!dots, .name_repair = .name_repair)
    6. ├─vctrs:::describe_repair(`<chr>`, `<chr>`)
    7. │ └─rlang::names_inform_repair(orig_names, names)
    8. │   └─rlang::inform(message = message, class = "rlib_message_name_repair")
    9. │     ├─base::withRestarts(...)
   10. │     │ └─base (local) withOneRestart(expr, restarts[[1L]])
   11. │     │   └─base (local) doWithOneRestart(return(expr), restart)
   12. │     └─base::signalCondition(cnd)
   13. │       ├─base::conditionMessage(cond)
   14. │       └─rlang:::conditionMessage.rlang_message(cond)
   15. │         └─rlang::cnd_message(c)
   16. │           └─rlang:::cnd_message_format(cnd, ...)
   17. │             └─rlang (local) cli_format(glue_escape(lines))
   18. │               └─rlang:::.rlang_cli_format(x, cli::format_message)
   19. │                 └─cli::cli_format(x, .envir = emptyenv())
   20. │                   └─cli:::fmt(...)
   21. │                     └─cli:::cli__fmt(rec, collapse, strip_newline, app)
   22. │                       ├─base::do.call(app[[msg$type]], msg$args)
   23. │                       └─cli (local) `<fn>`(text = `<named list>`, id = "cli-24140-147", class = NULL)
   24. │                         └─cli:::clii_bullets(app, text, id, class)
   25. │                           └─base::lapply(...)
   26. │                             └─cli (local) FUN(X[[i]], ...)
   27. │                               └─app$text(text[[i]])
   28. │                                 └─cli:::clii_text(app, text)
   29. │                                   └─app$xtext(text)
   30. │                                     └─cli:::clii__xtext(...)
   31. │                                       └─cli::ansi_strwrap(text, exdent = exdent, width = app$get_width(extra = padding))
   32. │                                         └─base::lapply(pars, ansi_trimws)
   33. │                                           └─cli (local) FUN(X[[i]], ...)
   34. └─base::.handleSimpleError(...)
   35.   └─dplyr (local) h(simpleError(msg, call))
   36.     └─rlang::cnd_signal(cnd)
  Execution halted