dplyr breaking changes

cran

19 curated breaking changes across major versions of dplyr. Use this as a migration checklist before bumping dependencies.

19
changes
Breaking changes by transition
  • v1.0.10 \u2192 v1.1.0breaking

    `arrange()` and `group_by()` now use the C locale, not the system locale, when ordering or grouping character vectors. This brings _substantial_ performance improvements, increases reproducibility across R sessions, makes dplyr more consistent with data.table, and we believe it should affect little existing code. If it does affect your code, you can use `options(dplyr.legacy_locale = TRUE)` to quickly revert to the previous behavior. However, in general, we instead recommend that you use the new

  • v1.0.10 \u2192 v1.1.0breaking

    `bench_tbls()`, `compare_tbls()`, `compare_tbls2()`, `eval_tbls()`, `eval_tbls2()`, `location()` and `changes()`, deprecated in 1.0.0, are now defunct (#6387).

  • v1.0.10 \u2192 v1.1.0breaking

    `frame_data()`, `data_frame_()`, `lst_()` and `tbl_sum()` are no longer re-exported from tibble (#6276, #6277, #6278, #6284).

  • v1.0.10 \u2192 v1.1.0breaking

    `select_vars()`, `rename_vars()`, `select_var()` and `current_vars()`, deprecated in 0.8.4, are now defunct (#6387).

  • v0.8.5 \u2192 v1.0.0breaking

    `bind_cols()` no longer converts to a tibble, returns a data frame if the input is a data frame.

  • v0.8.5 \u2192 v1.0.0breaking

    `bind_rows()`, `*_join()`, `summarise()` and `mutate()` use vctrs coercion rules. There are two main user facing changes:

  • v0.8.5 \u2192 v1.0.0breaking

    Combining factor and character vectors silently creates a character vector; previously it created a character vector with a warning.

  • v0.8.5 \u2192 v1.0.0breaking

    Combining multiple factors creates a factor with combined levels; previously it created a character vector with a warning.

  • v0.8.5 \u2192 v1.0.0breaking

    `bind_rows()` and other functions use vctrs name repair, see `?vctrs::vec_as_names`.

  • v0.8.0.1 \u2192 v0.8.1breaking

    `group_modify()` is the new name of the function previously known as `group_map()`

  • v0.7.6 \u2192 v0.8.0breaking

    The error `could not find function "n"` or the warning ```Calling `n()` without importing or prefixing it is deprecated, use `dplyr::n()` ``` indicates when functions like `n()`, `row_number()`, ... are not imported or prefixed. The easiest fix is to import dplyr with `import(dplyr)` in your `NAMESPACE` or `#' @import dplyr` in a roxygen comment, alternatively such functions can be imported selectively as any other function with `importFrom(dplyr, n)` in the `NAMESPACE` or `#' @importFrom dplyr

  • v0.7.6 \u2192 v0.8.0breaking

    If you see `checking S3 generic/method consistency` in R CMD check for your package, note that :

  • v0.7.6 \u2192 v0.8.0breaking

    `sample_n()` and `sample_frac()` have gained `...`

  • v0.7.6 \u2192 v0.8.0breaking

    `filter()` and `slice()` have gained `.preserve`

  • v0.7.6 \u2192 v0.8.0breaking

    `group_by()` has gained `.drop`

  • v0.7.4 \u2192 v0.7.5breaking

    The major change in this version is that dplyr now depends on the selecting backend of the tidyselect package. If you have been linking to `dplyr::select_helpers` documentation topic, you should update the link to point to `tidyselect::select_helpers`.

  • v0.7.4 \u2192 v0.7.5breaking

    Another change that causes warnings in packages is that dplyr now exports the `exprs()` function. This causes a collision with `Biobase::exprs()`. Either import functions from dplyr selectively rather than in bulk, or do not import `Biobase::exprs()` and refer to it with a namespace qualifier.

  • v0.7.4 \u2192 v0.7.5breaking

    `enexpr()`, `expr()`, `exprs()`, `sym()` and `syms()` are now exported. `sym()` and `syms()` construct symbols from strings or character vectors. The `expr()` variants are equivalent to `quo()`, `quos()` and `enquo()` but return simple expressions rather than quosures. They support quasiquotation.

  • v0.7.4 \u2192 v0.7.5breaking

    dplyr now depends on the new tidyselect package to power `select()`, `rename()`, `pull()` and their variants (#2896). Consequently `select_vars()`, `select_var()` and `rename_vars()` are soft-deprecated and will start issuing warnings in a future version. Following the switch to tidyselect, `select()` and `rename()` fully support character vectors. You can now unquote variables like this: ``` vars <- c("disp", "cyl") select(mtcars, !! vars) select(mtcars, -(!! vars)) ``` Note that this only work

API access

Get this data programmatically \u2014 free, no authentication.

curl https://depscope.dev/api/breaking/cran/dplyr
dplyr breaking changes — CRAN migration guide | DepScope