Join two data.tables together
left_join(x, y, by = NULL, suffix = c(".x", ".y"), ..., keep = FALSE)
right_join(x, y, by = NULL, suffix = c(".x", ".y"), ..., keep = FALSE)
inner_join(x, y, by = NULL, suffix = c(".x", ".y"), ..., keep = FALSE)
full_join(x, y, by = NULL, suffix = c(".x", ".y"), ..., keep = FALSE)
anti_join(x, y, by = NULL)
semi_join(x, y, by = NULL)
A data.frame or data.table
A data.frame or data.table
A character vector of variables to join by. If NULL, the default, the join will do a natural join, using all variables with common names across the two tables.
Append created for duplicated column names when using full_join()
Other parameters passed on to methods
Should the join keys from both x
and y
be preserved in the output?
df1 <- data.table(x = c("a", "a", "b", "c"), y = 1:4)
df2 <- data.table(x = c("a", "b"), z = 5:6)
df1 %>% left_join(df2)
#> # A tidytable: 4 × 3
#> x y z
#> <chr> <int> <int>
#> 1 a 1 5
#> 2 a 2 5
#> 3 b 3 6
#> 4 c 4 NA
df1 %>% inner_join(df2)
#> # A tidytable: 3 × 3
#> x y z
#> <chr> <int> <int>
#> 1 a 1 5
#> 2 a 2 5
#> 3 b 3 6
df1 %>% right_join(df2)
#> # A tidytable: 3 × 3
#> x y z
#> <chr> <int> <int>
#> 1 a 1 5
#> 2 a 2 5
#> 3 b 3 6
df1 %>% full_join(df2)
#> # A tidytable: 4 × 3
#> x y z
#> <chr> <int> <int>
#> 1 a 1 5
#> 2 a 2 5
#> 3 b 3 6
#> 4 c 4 NA
df1 %>% anti_join(df2)
#> # A tidytable: 1 × 2
#> x y
#> <chr> <int>
#> 1 c 4