Skip to content

dplyr 1.2.0 : deprecated > defunct / superseded : mutate_at, mutate_if, etc. #69

Description

@GuillaumePressiat

Les fonctions mutate_, select_, filter_* etc ne sont plus seulement deprecated mais bien "defunct" dans la dernière version de dplyr 1.2.0.

https://tidyverse.org/blog/2026/02/dplyr-1-2-0/#deprecations

All underscored verbs have moved from deprecated to defunct, such as mutate_() and arrange_(). These have been deprecated since dplyr 0.7.0 back in 2017 (yes, 2017!!). Use the non-underscored versions, see vignette("programming") for details.

https://blog.davisvaughan.com/posts/2026-01-09-claude-200-pull-requests/

Trouver les appels aux fonctions problématiques dans le package

file <- 'R/main_before_utf.R'

find_old_funs = function(file, funs_pattern = 'mutate_|filter_|select_|rename_(^with)|distinct_|group_by_|summarise_') {
  code <- readr::read_lines(file)
  d = getParseData(parse(text = code)) %>% as_tibble()
  
  work <- d %>% 
    mutate(tag = case_when(token %in% c('SYMBOL_FUNCTION_CALL') & 
                             grepl(funs_pattern, text) ~ 'à remplacer',
                           TRUE ~ 'Ok'))
  work %>% 
    filter(tag == 'à remplacer') %>% 
    mutate(file = file)
}

# find_old_funs(file)

list.files('R', full.names = TRUE) %>% 
  purrr::map_df(find_old_funs)

Pattern de remplacement exemple

# Avant
u <- foreign::read.dbf('~/Downloads/CCAM08200_DBF_PART3/R_PU_BASE.dbf')
u %>% 
  as_tibble() %>% 
  mutate_at(vars(starts_with('AAP')), substr,1,7)

# Après 
u %>% 
  as_tibble() %>% 
  mutate(across(starts_with('AAP'), \(x)substr(x,1,7)))

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions