Skip to content

refactor: barrer anti-patterns dplyr/purrr (#39, scope acotado)#69

Merged
pablotis merged 1 commit intostagingfrom
feat/issue-39-anti-patterns
May 9, 2026
Merged

refactor: barrer anti-patterns dplyr/purrr (#39, scope acotado)#69
pablotis merged 1 commit intostagingfrom
feat/issue-39-anti-patterns

Conversation

@pablotis
Copy link
Copy Markdown
Collaborator

@pablotis pablotis commented May 9, 2026

Summary

Cierra parcialmente issue #39 (Sprint B · Calidad técnica). Pasada mecánica para alinear el código a las convenciones tidyverse modernas (ver .claude/rules/r-conventions.md). Refactor sin cambio funcional.

Cambios:

Anti-pattern Reemplazo Ocurrencias
pmap_dfr / map_dfr (deprecated purrr 1.0) pmap()/map() \|> list_rbind() 10
group_by(X) \|> mutate(...) \|> ungroup() mutate(..., .by = X) 2
%>% magrittr \|> nativo 3

Archivos tocados: ETL/04b, 05, 06, 07-build_*.R y ETL/99-functions.R.

Diferido a otro sprint (no parte de este PR): CSS muerto, perf con profvis, accesibilidad WCAG, dependencias no usadas, refactor mod_analisis() genérico (#12 / Sprint C).

Test plan

  • Suite local pasa: 185 tests verde antes y después.
  • Grep verifica: 0 ocurrencias de los anti-patterns en R/ y ETL/.
  • CI tests-unit.yml verde sobre este PR.

🤖 Generated with Claude Code

Sprint B · Calidad técnica. Pasada mecánica para alinear el código a
las convenciones modernas tidyverse documentadas en
.claude/rules/r-conventions.md. Refactor sin cambio funcional: los
185 tests automatizados pasan igual antes y después.

Cambios:

- pmap_dfr / map_dfr → pmap()/map() |> list_rbind() (deprecados desde
  purrr 1.0). 10 ocurrencias:
    * ETL/04b-add_pp05_vars.R (descargas pp05)
    * ETL/05-build_panel_cat_ocup.R
    * ETL/06-build_panel_formalidad.R
    * ETL/07-build_panel_formalidad_ampliada.R
    * ETL/99-functions.R (regenerar_panel_historico, build_tasas_historico)

- group_by(X) |> mutate(...) |> ungroup() → mutate(..., .by = X)
  (idiom moderno desde dplyr 1.1, evita state implícito de
  agrupación). 2 ocurrencias en preparo_base() · ETL/99-functions.R.

- %>% magrittr → |> pipe nativo (R 4.1+). 3 líneas en
  df_to_annotations_labels() · ETL/99-functions.R.

Diferidos a otro sprint (no abarca este PR):
- CSS muerto, perf con profvis, accesibilidad WCAG, dependencias
  no usadas, refactor mod_analisis() genérico (#12).

Verificado: grep en R/ y ETL/ devuelve cero ocurrencias de los
patterns deprecated.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@pablotis pablotis merged commit 5830e4a into staging May 9, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant