-
summarise()
no longer informs when the result is ungrouped (#5633). -
group_by(.drop = FALSE)
preserves ordered factors (@brianrice2, #5545). -
count()
andtally()
are now generic. -
Removed default fallbacks to lazyeval methods; this will yield better error messages when
you call a dplyr function with the wrong input, and is part of our long term
plan to remove the deprecated lazyeval interface. -
inner_join()
gains akeep
parameter for consistency with the other
mutating joins (@patrickbarks, #5581). -
Improved performance with many columns, with a dynamic data mask using active
bindings and lazy chops (#5017). -
mutate()
and friends preserves row names in data frames once more (#5418). -
group_by()
uses the ungrouped data for the implicit mutate step (#5598).
You might have to define anungroup()
method for custom classes.
For example, see hadley/cubelyr#3. -
relocate()
can rename columns it relocates (#5569). -
distinct()
andgroup_by()
have better error messages when the mutate step fails (#5060). -
Clarify that
between()
is not vectorised (#5493). -
Fixed
across()
issue where data frame columns would could not be referred to
withall_of()
in the nested case (mutate()
withinmutate()
) (#5498). -
across()
handles data frames with 0 columns (#5523). -
mutate()
always keeps grouping variables, unconditional to.keep=
(#5582). -
dplyr now depends on R 3.3.0