| 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 fromxwith a match iny. -
anti_join()return all rows fromxwithout 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")