-
Help
DescriptionHello. In my project I'm using dynamic branching to process spatial data, and I'd like to aggregate the output. This should be done automatically by nc <- sf::st_read(system.file("shape/nc.shp", package="sf"))
#> Reading layer `nc' from data source `/home/goo/programming/R/libs/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
nc1 <- sf::st_read(system.file("shape/nc.shp", package="sf"))
#> Reading layer `nc' from data source `/home/goo/programming/R/libs/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
objs <- list(nc, nc1)
objs$.name_spec <- "{outer}_{inner}"
do.call(vctrs::vec_c, objs)
#> Error:
#> ! Can't use a name specification with non-vctrs types.
#> vctrs methods must be implemented for class `sfc_MULTIPOLYGON`.
#> See <https://vctrs.r-lib.org/articles/s3-vector.html>.
objs$.name_spec <- NULL
do.call(vctrs::vec_c, objs) |> head() # do not print 200 lines
#> 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
#> 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 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... Created on 2024-12-15 with reprex v2.1.1 |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment
-
This is tricky because |
Beta Was this translation helpful? Give feedback.
This is tricky because
targets
tries to preserve the names of dynamic branches and.name_spec
is required when aggregating true vectors with lengths > 1. d01f86d falls back ondo.call(vctrs::vec_c, unname(objects))
with no name spec. I think this fixes the issue.