Filtering joins for an ir object
Arguments
- x
An object of class
ir.- y
A data frame.
- 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.- ...
Other parameters passed onto methods.
- na_matches
Should two
NAor twoNaNvalues match?
Value
x and y joined. If the spectra column is renamed, the ir
class is dropped. See filter-joins.
See also
Other tidyverse:
arrange.ir(),
distinct.ir(),
extract.ir(),
filter.ir(),
group_by,
mutate,
mutate-joins,
nest,
pivot_longer.ir(),
pivot_wider.ir(),
rename,
rowwise.ir(),
select.ir(),
separate.ir(),
separate_rows.ir(),
slice,
summarize,
unite.ir()
Examples
## semi_join
set.seed(234)
dplyr::semi_join(
ir_sample_data,
tibble::tibble(
id_measurement = c(1:5, 101:105),
nitrogen_content = rbeta(n = 10, 0.2, 0.1)
),
by = "id_measurement"
)
#> # A tibble: 5 × 7
#> id_measurement id_sample sample_type sample_comment klason_lignin
#> * <int> <chr> <chr> <chr> <units>
#> 1 1 GN 11-389 needles Abies Firma Momi fir 0.359944
#> 2 2 GN 11-400 needles Cupressocyparis leylandii … 0.339405
#> 3 3 GN 11-407 needles Juniperus chinensis Chines… 0.267552
#> 4 4 GN 11-411 needles Metasequoia glyptostroboid… 0.350016
#> 5 5 GN 11-416 needles Pinus strobus Torulosa 0.331100
#> # ℹ 2 more variables: holocellulose <units>, spectra <named list>
## anti_join
set.seed(234)
dplyr::anti_join(
ir_sample_data,
tibble::tibble(
id_measurement = c(1:5, 101:105),
nitrogen_content = rbeta(n = 10, 0.2, 0.1)
),
by = "id_measurement"
)
#> # A tibble: 53 × 7
#> id_measurement id_sample sample_type sample_comment klason_lignin
#> * <int> <chr> <chr> <chr> <units>
#> 1 6 GN 11-419 needles Pseudolarix amabili Golde… 0.279360
#> 2 7 GN 11-422 needles Sequoia sempervirens Cali… 0.329672
#> 3 8 GN 11-423 needles Taxodium distichum Cascad… 0.356950
#> 4 9 GN 11-428 needles Thuja occidentalis Easter… 0.369360
#> 5 10 GN 11-434 needles Tsuga caroliniana Carolin… 0.289050
#> 6 11 GN 11-435 needles Picea abies Norway Spruce 0.288000
#> 7 12 GN 11-460 needles Pinus taeda Loblolly pine 0.322300
#> 8 13 HW 07-151 hardwood Quercus sp. Red oak (from… 0.238095
#> 9 14 HW 11-137 hardwood Acer saccharum Sugar maple 0.242592
#> 10 15 HW 11-144 hardwood Fraxinus americana White … 0.259224
#> # ℹ 43 more rows
#> # ℹ 2 more variables: holocellulose <units>, spectra <named list>