As @lionel- nicely proposed in #3967 it would be great to have more control on what the *_join() functions do on duplicated or unmatched rows. Proposed arguments:
.unmatched = c("keep", "drop", "error")
.duplicates = c("error", "product")
for example a 1:1 join would then simply be .unmatched = "error" and .duplicates = "error".
As the arguments should rather be added to the existing *_join() functions the "keep" and "drop" options for .unmatched don't really make sense for all joins. Rather, one would have
left/right/full_join() -> .unmatched = c("keep", "error")
inner_join() -> .unmatched = c("drop", "error")
As @lionel- nicely proposed in #3967 it would be great to have more control on what the
*_join()functions do on duplicated or unmatched rows. Proposed arguments:.unmatched = c("keep", "drop", "error").duplicates = c("error", "product")for example a 1:1 join would then simply be
.unmatched = "error"and.duplicates = "error".As the arguments should rather be added to the existing
*_join()functions the "keep" and "drop" options for.unmatcheddon't really make sense for all joins. Rather, one would haveleft/right/full_join()->.unmatched = c("keep", "error")inner_join()->.unmatched = c("drop", "error")