View source: R/coalesce_join.R
coalesce_join | R Documentation |
Wrapper around dplyr::join and dplyr::coalesce to enable coalescing joins where missing values in 'x' are filled in with matching values from 'y'. Syntax borrowed directly from here: https://alistaire.rbind.io/blog/coalescing-joins/.
coalesce_join( x, y, by = NULL, suffix = c(".x", ".y"), join = dplyr::full_join, debug = FALSE, ... )
x, y |
A pair of data frames, data frame extensions (e.g. a tibble), or lazy data frames (e.g. from dbplyr or dtplyr). |
by |
A character vector of variables to join by. If 'NULL', the default, '*_join()' will perform a natural join, using all variables in common across 'x' and 'y'. A message lists the variables so that you can check they're correct; suppress the message by supplying 'by' explicitly. 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'. To join by multiple variables, use a vector with length > 1. For example, 'by = c("a", "b")' will match 'x$a' to 'y$a' and 'x$b' to 'y$b'. Use a named vector to match different variables in 'x' and 'y'. For example, 'by = c("a" = "b", "c" = "d")' will match 'x$a' to 'y$b' and 'x$c' to 'y$d'. To perform a cross-join, generating all combinations of 'x' and 'y', use 'by = character()'. |
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. |
join |
Type of join to perform (e.g. dplyr::left_join). |
debug |
logical, use coalesce_with_warnings and print debug statements |
... |
Other parameters passed onto methods. |
An object of the same type as 'x'.
df1 <- data.frame( key = c('a', 'b', 'c', 'd', 'e', 'f'), var1 = c( 1, 2, 3, 4, NA, NA), var2 = c( NA, NA, NA, NA, 5, 6), var3 = c( 1, 2, 3, 4, 5, 6) ) df2 <- data.frame( key = c('c', 'd', 'e', 'f'), var1 = c( NA, NA, 5, 6), var2 = c( NA, 4, 5, NA), var4 = c( 3, 4, 5, 6) ) coalesce_join(df1, df2, by = 'key')
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.