mlr3proba
mlr3proba is shedding weight as its survival work moves into sibling packages
A side-by-side editorial comparison of dtplyr and workflowsets — release velocity, themes, recent moves, and the top alternatives to consider.
dtplyr stopped hijacking data.table objects and became an opt-in translator
dtplyr converts dplyr and tidyr code into data.table syntax, and 1.3.0 redrew its boundary: verbs no longer dispatch to dtplyr translations just because dtplyr is loaded, so lazy_dt() has to be called explicitly. Since then the work has been translation coverage — reframe(), case_match(), consecutive_id() — plus a long tail of correctness fixes in grouping and .by.
workflowsets keeps widening what counts as a model worth comparing.
workflowsets holds a grid of preprocessor and model combinations and evaluates all of them under one call to workflow_map(). The releases in view widen that grid — clustering specifications via tidyclust, censored regression via an eval_time argument, case weights — and fill in the accessors around it with collect_notes(), collect_extracts() and fit_best(). The long-running pull_*() deprecation finally reached the error stage in 1.1.1.
dtplyr converts dplyr and tidyr code into data.table syntax, and 1.3.0 redrew its boundary: verbs no longer dispatch to dtplyr translations just because dtplyr is loaded, so lazy_dt() has to be called explicitly. Since then the work has been translation coverage — reframe(), case_match(), consecutive_id() — plus a long tail of correctness fixes in grouping and .by.
The package is trailing dplyr's own feature releases rather than leading them, adding each new verb once it settles upstream. Performance work is targeted at specific verbs where data.table has a faster primitive: setorder() for arrange(), reference drops for select(), rleid() for consecutive_id(). Release cadence has thinned considerably since 2023.
Expect further one-for-one translations as dplyr adds verbs, and continued fixes around .by and non-standard column names; the entries show no sign of a broader redesign.
workflowsets holds a grid of preprocessor and model combinations and evaluates all of them under one call to workflow_map(). The releases in view widen that grid — clustering specifications via tidyclust, censored regression via an eval_time argument, case weights — and fill in the accessors around it with collect_notes(), collect_extracts() and fit_best(). The long-running pull_*() deprecation finally reached the error stage in 1.1.1.
The package's job is comparison, so its direction is set by what tidymodels can express: every time a new model paradigm lands elsewhere, workflowsets has to learn to rank it. Clustering was the largest of those steps because it has no outcome column to score against. Alongside that runs a slower cleanup — named-only optional arguments, type checking on inputs, informative errors when someone passes a workflow set to fit() — that reads as a package hardening after its API settled.
Expect the tailor postprocessors that workflows added in 1.3.0 to need representation here next, since a workflow set that cannot vary the postprocessor cannot compare calibration choices.
Other Analytics products tracked by Sparkpulse, ranked by recent ship velocity. Each card links to a full editorial trajectory and lets you pivot into a head-to-head comparison with either dtplyr or workflowsets.
mlr3proba is shedding weight as its survival work moves into sibling packages
mlr3viz keeps the ecosystem's plots working while the plots themselves move out
mlr3tuning is rebuilding its async machinery under a stable public surface
timetk swallowed anomalize whole, then went quiet for two years
modelbased is turning marginal effects into a full contrast grammar
easystats' parameters package absorbs one more model class every few weeks
See all dtplyr alternatives → · See all workflowsets alternatives →
Latest ship moves from both products, interleaved chronologically. ⚡ = editorial spark.
They serve adjacent needs but don't currently overlap on shipped themes. dtplyr and workflowsets are shipping at a similar cadence (velocity 0.0 vs 0.0, both within Sparkpulse's "active" band). See the at-a-glance table above for a side-by-side breakdown of velocity, recent sparks, and editorial themes.
Sparkpulse doesn't pick a winner — we score release velocity, not feature parity. dtplyr and workflowsets are shipping at a similar cadence (velocity 0.0 vs 0.0, both within Sparkpulse's "active" band). For your specific use case, the alternatives sections above list other Analytics products to evaluate alongside.
Top dtplyr alternatives in Analytics are ranked by recent ship velocity. Browse the "dtplyr alternatives" section above for the current picks, or visit /alternatives/dtplyr for the full list with editorial commentary on each.
Top workflowsets alternatives in Analytics are ranked by recent ship velocity. Browse the "workflowsets alternatives" section above for the current picks, or visit /alternatives/workflowsets for the full list with editorial commentary on each.