join.tbl_df {dplyr} | R Documentation

## Join data frame tbls

### Description

See join for a description of the general purpose of the functions.

### Usage

    ## S3 method for class 'tbl_df'
    inner_join(x, y, by = NULL, copy = FALSE,
      suffix = c(".x", ".y"), ...,
      na_matches = pkgconfig::get_config("dplyr::na_matches"))

    ## S3 method for class 'tbl_df'
    left_join(x, y, by = NULL, copy = FALSE, suffix = c(".x",
      ".y"), ..., na_matches = pkgconfig::get_config("dplyr::na_matches"))

    ## S3 method for class 'tbl_df'
    right_join(x, y, by = NULL, copy = FALSE,
      suffix = c(".x", ".y"), ...,
      na_matches = pkgconfig::get_config("dplyr::na_matches"))

    ## S3 method for class 'tbl_df'
    full_join(x, y, by = NULL, copy = FALSE, suffix = c(".x",
      ".y"), ..., na_matches = pkgconfig::get_config("dplyr::na_matches"))

    ## S3 method for class 'tbl_df'
    semi_join(x, y, by = NULL, copy = FALSE, ...,
      na_matches = pkgconfig::get_config("dplyr::na_matches"))

    ## S3 method for class 'tbl_df'
    anti_join(x, y, by = NULL, copy = FALSE, ...,
      na_matches = pkgconfig::get_config("dplyr::na_matches"))

### Arguments

`x` | tbls to join
`y` | tbls to join

`by`

a character vector of variables to join by. If `NULL`, the default, `*_join()` will do a natural join, using all variables with common names across the two tables. A message lists the variables so that you can check they're right (to suppress the message, simply explicitly list the variables that you want to join).

To join by different variables on x and y use a named vector. For example, `by = c("a" = "b")` will match `x.a` to `y.b`.

`copy` | If `x` and `y` are not from the same data source, and `copy` is `TRUE`, then `y` will be copied into the same src as `x`. This allows you to join tables across srcs, but it is a potentially expensive operation so you must opt into it.
`suffix` | If there are non-joined duplicate variables in `x` and `y`, these suffixes will be added to the output to disambiguate them. Should be a character vector of length 2.
`...` | included for compatibility with the generic; otherwise ignored.
`na_matches` | Use `"never"` to always treat two `NA` or `NaN` values as different, like joins for database sources, similarly to `merge(incomparables = FALSE)`. The default,`"na"`, always treats two `NA` or `NaN` values as equal, like `merge()`. Users and package authors can change the default behavior by calling `pkgconfig::set_config("dplyr::na_matches" = "never")`.

### Examples

    if (require("Lahman")) {
    batting_df <- tbl_df(Batting)
    person_df <- tbl_df(Master)

    uperson_df <- tbl_df(Master[!duplicated(Master$playerID), ])

    # Inner join: match batting and person data
    inner_join(batting_df, person_df)
    inner_join(batting_df, uperson_df)

    # Left join: match, but preserve batting data
    left_join(batting_df, uperson_df)

    # Anti join: find batters without person data
    anti_join(batting_df, person_df)
    # or people who didn't bat
    anti_join(person_df, batting_df)
    }

[Package dplyr version 0.7.4 Index]