Skip to contents

Use these methods without the '.dm_zoomed' suffix (see examples).

Usage

# S3 method for dm_zoomed
left_join(x, y, by = NULL, copy = NULL, suffix = NULL, select = NULL, ...)

# S3 method for dm_keyed_tbl
left_join(x, y, by = NULL, copy = NULL, suffix = NULL, ..., keep = FALSE)

# S3 method for dm_zoomed
inner_join(x, y, by = NULL, copy = NULL, suffix = NULL, select = NULL, ...)

# S3 method for dm_keyed_tbl
inner_join(x, y, by = NULL, copy = NULL, suffix = NULL, ..., keep = FALSE)

# S3 method for dm_zoomed
full_join(x, y, by = NULL, copy = NULL, suffix = NULL, select = NULL, ...)

# S3 method for dm_keyed_tbl
full_join(x, y, by = NULL, copy = NULL, suffix = NULL, ..., keep = FALSE)

# S3 method for dm_zoomed
right_join(x, y, by = NULL, copy = NULL, suffix = NULL, select = NULL, ...)

# S3 method for dm_keyed_tbl
right_join(x, y, by = NULL, copy = NULL, suffix = NULL, ..., keep = FALSE)

# S3 method for dm_zoomed
semi_join(x, y, by = NULL, copy = NULL, suffix = NULL, select = NULL, ...)

# S3 method for dm_keyed_tbl
semi_join(x, y, by = NULL, copy = NULL, ...)

# S3 method for dm_zoomed
anti_join(x, y, by = NULL, copy = NULL, suffix = NULL, select = NULL, ...)

# S3 method for dm_keyed_tbl
anti_join(x, y, by = NULL, copy = NULL, ...)

# S3 method for dm_zoomed
nest_join(x, y, by = NULL, copy = FALSE, keep = FALSE, name = NULL, ...)

Arguments

x, y

tbls to join. x is the dm_zoomed and y is another table in the dm.

by

If left NULL (default), the join will be performed by via the foreign key relation that exists between the originally zoomed table (now x) and the other table (y). If you provide a value (for the syntax see dplyr::join), you can also join tables that are not connected in the dm.

copy

Disabled, since all tables in a dm are by definition on the same src.

suffix

Disabled, since columns are disambiguated automatically if necessary, changing the column names to table_name.column_name.

select

Select a subset of the RHS-table's columns, the syntax being select = c(col_1, col_2, col_3) (unquoted or quoted). This argument is specific for the join-methods for dm_zoomed. The table's by column(s) are automatically added if missing in the selection.

...

see dplyr::join

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 of y is used.

Examples

flights_dm <- dm_nycflights13()
dm_zoom_to(flights_dm, flights) %>%
  left_join(airports, select = c(faa, name))
#> # Zoomed table: flights
#> # A tibble:     1,761 × 20
#>     year month   day dep_time sched_de…¹ dep_d…² arr_t…³ sched…⁴ arr_d…⁵ carrier
#>    <int> <int> <int>    <int>      <int>   <dbl>   <int>   <int>   <dbl> <chr>  
#>  1  2013     1    10        3       2359       4     426     437     -11 B6     
#>  2  2013     1    10       16       2359      17     447     444       3 B6     
#>  3  2013     1    10      450        500     -10     634     648     -14 US     
#>  4  2013     1    10      520        525      -5     813     820      -7 UA     
#>  5  2013     1    10      530        530       0     824     829      -5 UA     
#>  6  2013     1    10      531        540      -9     832     850     -18 AA     
#>  7  2013     1    10      535        540      -5    1015    1017      -2 B6     
#>  8  2013     1    10      546        600     -14     645     709     -24 B6     
#>  9  2013     1    10      549        600     -11     652     724     -32 EV     
#> 10  2013     1    10      550        600     -10     649     703     -14 US     
#> # … with 1,751 more rows, 10 more variables: flight <int>, tailnum <chr>,
#> #   origin <chr>, dest <chr>, air_time <dbl>, distance <dbl>, hour <dbl>,
#> #   minute <dbl>, time_hour <dttm>, name <chr>, and abbreviated variable names
#> #   ¹​sched_dep_time, ²​dep_delay, ³​arr_time, ⁴​sched_arr_time, ⁵​arr_delay

# this should illustrate that tables don't necessarily need to be connected
dm_zoom_to(flights_dm, airports) %>%
  semi_join(airlines, by = "name")
#> # Zoomed table: airports
#> # A tibble:     0 × 8
#> # … with 8 variables: faa <chr>, name <chr>, lat <dbl>, lon <dbl>, alt <dbl>,
#> #   tz <dbl>, dst <chr>, tzone <chr>