filter-joins.SpatVector {tidyterra} | R Documentation |
Filtering joins for SpatVector
objects
Description
Filtering joins filter rows from x
based on the presence or absence of
matches in y
:
-
semi_join()
return all rows fromx
with a match iny
. -
anti_join()
return all rows fromx
without a match iny
.
See dplyr::semi_join()
for details.
Usage
## S3 method for class 'SpatVector'
semi_join(x, y, by = NULL, copy = FALSE, ...)
## S3 method for class 'SpatVector'
anti_join(x, y, by = NULL, copy = FALSE, ...)
Arguments
x |
A |
y |
A data frame or other object coercible to a data frame. If a
|
by |
A join specification created with If To join on different variables between To join by multiple variables, use a
For simple equality joins, you can alternatively specify a character vector
of variable names to join by. For example, To perform a cross-join, generating all combinations of |
copy |
If |
... |
Other parameters passed onto methods. |
Value
A SpatVector
object.
terra equivalent
Methods
Implementation of the generic dplyr::semi_join()
family
SpatVector
The geometry column has a sticky behavior. This means that the result would
have always the geometry of x
for the records that matches the join
conditions.
See Also
dplyr::semi_join()
, dplyr::anti_join()
, terra::merge()
Other dplyr verbs that operate on pairs Spat*
/data.frame:
bind_cols.SpatVector
,
bind_rows.SpatVector
,
mutate-joins.SpatVector
Other dplyr methods:
arrange.SpatVector()
,
bind_cols.SpatVector
,
bind_rows.SpatVector
,
count.SpatVector()
,
distinct.SpatVector()
,
filter.Spat
,
glimpse.Spat
,
group-by.SpatVector
,
mutate-joins.SpatVector
,
mutate.Spat
,
pull.Spat
,
relocate.Spat
,
rename.Spat
,
rowwise.SpatVector()
,
select.Spat
,
slice.Spat
,
summarise.SpatVector()
Examples
library(terra)
library(ggplot2)
# Vector
v <- terra::vect(system.file("extdata/cyl.gpkg", package = "tidyterra"))
# A data frame
df <- data.frame(
cpro = sprintf("%02d", 1:10),
x = runif(10),
y = runif(10),
letter = rep_len(LETTERS[1:3], length.out = 10)
)
v
# Semi join
semi <- v %>% semi_join(df)
semi
autoplot(semi, aes(fill = iso2)) + ggtitle("Semi Join")
# Anti join
anti <- v %>% anti_join(df)
anti
autoplot(anti, aes(fill = iso2)) + ggtitle("Anti Join")