join.tbl_dt {dplyr}R Documentation

Join data table tbls.

Description

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

Usage

## S3 method for class 'data.table'
inner_join(x, y, by = NULL, copy = FALSE, ...)

## S3 method for class 'data.table'
left_join(x, y, by = NULL, copy = FALSE, ...)

## S3 method for class 'data.table'
semi_join(x, y, by = NULL, copy = FALSE, ...)

## S3 method for class 'data.table'
anti_join(x, y, by = NULL, copy = FALSE, ...)

Arguments

x,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 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.

...

Included for compatibility with generic; otherwise ignored.

Examples

if (require("data.table") && require("Lahman")) {
batting_dt <- tbl_dt(Batting)
person_dt <- tbl_dt(Master)

# Inner join: match batting and person data
inner_join(batting_dt, person_dt)

# Left join: keep batting data even if person missing
left_join(batting_dt, person_dt)

# Semi-join: find batting data for top 4 teams, 2010:2012
grid <- expand.grid(
  teamID = c("WAS", "ATL", "PHI", "NYA"),
  yearID = 2010:2012)
top4 <- semi_join(batting_dt, grid, copy = TRUE)

# Anti-join: find batting data with out player data
anti_join(batting_dt, person_dt)
}

[Package dplyr version 0.4.3 Index]