[R-sig-Geo] How to filter a spatial object in sf

Matt Lewis m|807 @end|ng |rom c@m@@c@uk
Wed Jun 30 17:08:15 CEST 2021


Dear Manuel,

st_filter by default takes .predicate = st_intersects. The 3 polygons 
you filter to are adjacent to five others, so st_filter returns the 3 
you want and the 5 others which touch too. To avoid this behaviour you 
can specify the .predicate argument to another option like st_within as 
in:

nc_filter <- st_filter(nc, nc_smaller, .predicate = st_within)

Hope this helps.

All the best,

Matt

On 2021-06-30 16:52, Manuel Spínola wrote:

> I would like to retain the information stored in a larger spatial 
> object
> for a subset of features from a smaller spatial object.  I tried a
> st_filter but I cannot achieve my goal.
> 
> nc = st_read(system.file("shape/nc.shp", package="sf"))
> 
> nc_smaller <- nc %>% filter(CNTY_ID %in% c(1825, 1827, 1828))
> 
> nc_filter <- st_filter(nc, nc_smaller)
> 
> The nc_smaller has 3 features, but the nc_filter ended with 8 features. 
>  I
> was expecting to have on 3 features in the nc_filter.
> 
> Manuel
> 
> --
> *Manuel Spínola, Ph.D.*
> Instituto Internacional en Conservación y Manejo de Vida Silvestre
> Universidad Nacional
> Apartado 1350-3000
> Heredia
> COSTA RICA
> mspinola using una.cr <mspinola using una.ac.cr>
> mspinola10 using gmail.com
> Teléfono: (506) 8706 - 4662
> Personal website: Lobito de río 
> <https://sites.google.com/site/lobitoderio/>
> Institutional website: ICOMVIS <http://www.icomvis.una.ac.cr/>
> 
> [[alternative HTML version deleted]]
> 
> _______________________________________________
> R-sig-Geo mailing list
> R-sig-Geo using r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-sig-geo
	[[alternative HTML version deleted]]



More information about the R-sig-Geo mailing list