RMVMR
RMVMR is being tidied in lockstep with MVMR, the package it wraps
A side-by-side editorial comparison of clinify and socialmixr — release velocity, themes, recent moves, and the top alternatives to consider.
Clinical-table typesetting for R, closing the gap between R output and regulatory Word documents
clinify renders clinical trial tables into Word documents through {officer}, aiming at the layout conventions regulatory submissions expect. 0.4.0 is the current CRAN release and folds in an unreleased 0.3.1. The recent work is almost entirely about header and spacing control: which adjacent header cells merge, where the rule under a spanner starts and stops, and how much vertical space sits above, below and between header rows and the table body.
socialmixr breaks its one-shot contact_matrix() call into a composable pipeline.
socialmixr builds age-structured social contact matrices from survey data for infectious-disease modelling. Version 0.6.0 replaces the monolithic contact_matrix() entry point with a chain of composable steps — filter, assign age groups, weigh, compute, then symmetrise, split or convert per capita — behind a new contact_matrix S3 class. Survey downloading is being handed off to a separate contactsurveys package.
clinify renders clinical trial tables into Word documents through {officer}, aiming at the layout conventions regulatory submissions expect. 0.4.0 is the current CRAN release and folds in an unreleased 0.3.1. The recent work is almost entirely about header and spacing control: which adjacent header cells merge, where the rule under a spanner starts and stops, and how much vertical space sits above, below and between header rows and the table body.
The package is moving from producing a correct table toward producing one that survives an organisation's house style. 0.4.0's additions are all written to hold under a customised `clinify_table_default()` — `clin_spanner_rule()` draws after the default styling function so it persists when a house style clears the borders it started from, and takes an `officer::fp_border()` or `FALSE` so a style can decline the rule entirely. The earlier 0.3.0 line did the structural work, introducing `clindoc()` document objects that accept multiple tables plus automatic pagination.
Expect continued refinement of layout primitives that follow the table rather than fixed column numbers, since both new 0.4.0 functions were built specifically to track spanners and headers as a layout changes. The entries do not indicate a move beyond Word output.
socialmixr builds age-structured social contact matrices from survey data for infectious-disease modelling. Version 0.6.0 replaces the monolithic contact_matrix() entry point with a chain of composable steps — filter, assign age groups, weigh, compute, then symmetrise, split or convert per capita — behind a new contact_matrix S3 class. Survey downloading is being handed off to a separate contactsurveys package.
The arc from 0.4.0 to 0.6.0 is decomposition: first extracting helpers like assign_age_groups(), then moving downloads out of the package, and now exposing every stage of matrix construction as its own verb. Breaking changes are accepted at each step — preserved empty age groups, arrays instead of xtabs, [N,Inf) labels — with the new class inheriting from list so existing $matrix access keeps working. The label change is explicitly aligned with the contactmatrix package.
Expect the deprecated dotted argument names and the remaining in-package download paths to be removed once the contactsurveys handoff completes, leaving contact_matrix() as a thin wrapper over the pipeline.
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 clinify or socialmixr.
RMVMR is being tidied in lockstep with MVMR, the package it wraps
geoarrow tracks the GeoArrow spec and otherwise just keeps compiling
n2khab keeps retracting interpretations of habitat data it can't actually support
tidypolars is grinding toward complete dplyr coverage, one supported function at a time
OneSampleMR found that argument order in a formula was silently changing its estimates
bpbounds found the same swapped-cell bug twice and clamped its bounds back into range
See all clinify alternatives → · See all socialmixr alternatives →
Latest ship moves from both products, interleaved chronologically. ⚡ = editorial spark.
They serve adjacent needs but don't currently overlap on shipped themes. clinify is currently shipping more aggressively (velocity 2.5 vs 0.0), with 0 editorial sparks in the last 30 days against 0. 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. clinify is currently shipping more aggressively (velocity 2.5 vs 0.0), with 0 editorial sparks in the last 30 days against 0. For your specific use case, the alternatives sections above list other Analytics products to evaluate alongside.
Top clinify alternatives in Analytics are ranked by recent ship velocity. Browse the "clinify alternatives" section above for the current picks, or visit /alternatives/clinify-r for the full list with editorial commentary on each.
Top socialmixr alternatives in Analytics are ranked by recent ship velocity. Browse the "socialmixr alternatives" section above for the current picks, or visit /alternatives/socialmixr for the full list with editorial commentary on each.