nest_join() returns a tibble with the attributes and geometry of x, plus
a list-column containing matching rows from y.
Arguments
- x
A
SpatVector.- y
A data frame. Spatial
yinputs are not supported; use spatial joins from terra for that workflow.- by
A join specification created with
join_by(), or a character vector of variables to join by.If
NULL, the default,*_join()will perform a natural join, using all variables in common acrossxandy. A message lists the variables so that you can check they're correct; suppress the message by supplyingbyexplicitly.To join on different variables between
xandy, use ajoin_by()specification. For example,join_by(a == b)will matchx$atoy$b.To join by multiple variables, use a
join_by()specification with multiple expressions. For example,join_by(a == b, c == d)will matchx$atoy$bandx$ctoy$d. If the column names are the same betweenxandy, you can shorten this by listing only the variable names, likejoin_by(a, c).join_by()can also be used to perform inequality, rolling, and overlap joins. See the documentation at ?join_by for details on these types of joins.For simple equality joins, you can alternatively specify a character vector of variable names to join by. For example,
by = c("a", "b")joinsx$atoy$aandx$btoy$b. If variable names differ betweenxandy, use a named character vector likeby = c("x_a" = "y_a", "x_b" = "y_b").To perform a cross-join, generating all combinations of
xandy, seecross_join().- copy
If
xandyare not from the same data source, andcopyisTRUE, thenywill be copied into the same src asx. This allows you to join tables across srcs, but it is a potentially expensive operation so you must opt into it.- keep
Should the new list-column contain join keys? The default will preserve the join keys for inequality joins.
- name
The name of the list-column created by the join. If
NULL, the default, the name ofyis used.- ...
Other parameters passed onto methods.
- na_matches
Should two
NAor twoNaNvalues match?
Value
A tibble.
Methods
Implementation of the generic dplyr::nest_join() method.
See also
Other dplyr verbs that operate on pairs Spat*/data.frame:
bind_cols.SpatVector,
bind_rows.SpatVector,
cross_join.SpatVector(),
filter-joins.SpatVector,
mutate-joins.SpatVector,
rows.SpatVector
Other dplyr methods:
arrange.SpatVector(),
bind_cols.SpatVector,
bind_rows.SpatVector,
count.SpatVector(),
cross_join.SpatVector(),
distinct.SpatVector(),
filter-joins.SpatVector,
filter.Spat,
glimpse.Spat,
group_by.SpatVector(),
mutate-joins.SpatVector,
mutate.Spat,
pull.Spat,
reframe.SpatVector(),
relocate.Spat,
rename.Spat,
rows.SpatVector,
rowwise.SpatVector(),
select.Spat,
slice.Spat,
summarise.SpatVector()
Examples
v <- terra::vect(system.file("extdata/cyl.gpkg", package = "tidyterra"))
extra <- tibble::tibble(cpro = c("05", "09"), value = c(1, 2))
nest_join(v, extra, by = "cpro")
#> # A tibble: 9 × 5
#> iso2 cpro name geometry data
#> * <chr> <chr> <chr> <chr> <lis>
#> 1 ES-AV 05 Avila POLYGON ((3126360.241699999 2066777.7545, 312507… <df>
#> 2 ES-BU 09 Burgos MULTIPOLYGON (((3276730.9088 2262326.4267999995,… <df>
#> 3 ES-LE 24 Leon POLYGON ((3049427.446799999 2233672.9251, 304906… <df>
#> 4 ES-P 34 Palencia MULTIPOLYGON (((3175411.4093999993 2291867.77349… <df>
#> 5 ES-SA 37 Salamanca POLYGON ((3042660.9637 2138939.4168, 3043433.893… <df>
#> 6 ES-SG 40 Segovia POLYGON ((3126360.241699999 2066777.7545, 312403… <df>
#> 7 ES-SO 42 Soria POLYGON ((3194084.32 2154250.846, 3194361.6882 2… <df>
#> 8 ES-VA 47 Valladolid MULTIPOLYGON (((3158119.9080999997 2161552.0975,… <df>
#> 9 ES-ZA 49 Zamora POLYGON ((3042660.9637 2138939.4168, 3040850.710… <df>
