cIRT
A choice-based IRT model published once in 2019 and kept compiling ever since
A side-by-side editorial comparison of common and fmtr — release velocity, themes, recent moves, and the top alternatives to consider.
A base-R utility belt that grows one small function at a time, on no particular schedule
common collects small helpers that base R leaves out — data frame labelling and sorting, infix operators for pasting and equality, UTF-8 superscript and subscript lookups, file and directory search, attribute copying between data frames. It has no dependencies to speak of and deliberately removed the one it had. In practice it is the shared substrate for its author's wider package family, and its source.all() function is maintained specifically to cooperate with the logr logging package.
Rebuilding SAS's formatting layer in R, one format specification at a time
fmtr applies formats to R data the way SAS applies them: named format catalogues, format lists, and an fapply() that maps a specification onto a vector. It is part of a family of packages that reconstruct SAS reporting idioms in R, and it shares infrastructure with them — labels.data.frame() was moved out to the common package, which fmtr now depends on. The recent releases have been closing specific gaps against SAS's own format vocabulary.
common collects small helpers that base R leaves out — data frame labelling and sorting, infix operators for pasting and equality, UTF-8 superscript and subscript lookups, file and directory search, attribute copying between data frames. It has no dependencies to speak of and deliberately removed the one it had. In practice it is the shared substrate for its author's wider package family, and its source.all() function is maintained specifically to cooperate with the logr logging package.
The pattern is accretion rather than direction: each release adds a couple of utilities and fixes whatever the last batch broke, with gaps of a year or more between them. Function additions cluster around whatever the author's other packages needed at the time — file search, attribute preservation, group-boundary detection, script sourcing. The 2025 release continues exactly this, extending the infix comparison operators from equality alone to the full set of relational tests.
Expect more of the same shape — a handful of small helpers whenever a sibling package needs them — with no sign in these entries of a broader API push.
fmtr applies formats to R data the way SAS applies them: named format catalogues, format lists, and an fapply() that maps a specification onto a vector. It is part of a family of packages that reconstruct SAS reporting idioms in R, and it shares infrastructure with them — labels.data.frame() was moved out to the common package, which fmtr now depends on. The recent releases have been closing specific gaps against SAS's own format vocabulary.
The direction is parity, pursued in small increments. Quarter format codes were added because base R has none; the SAS best. format was reimplemented, then hardened against the variations people actually write; statistical summary helpers like fmt_mean_sd() and fmt_mean_stderr() cover the cell contents clinical tables need. The structural work is largely behind it, including the breaking 2022 move that handed labelling to a sibling package, so what remains is vocabulary coverage.
The pattern of adding a SAS format, then a release to handle its variants, suggests the next releases continue filling in format codes and summary helpers rather than changing how formats are applied.
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 common or fmtr.
A choice-based IRT model published once in 2019 and kept compiling ever since
The R engine behind MetaboAnalyst closes the gap from raw spectra to biological interpretation
Standardised coefficients for models where standardising everything is wrong — but the feed only links out
Stream-network spatial models learning to run on data that no longer fits in memory
Bioconductor's installer, frozen at 1.30.x and tuned almost entirely through environment variables
Decision curve analysis, settled since 2022 and now moving only when its neighbours do
Latest ship moves from both products, interleaved chronologically. ⚡ = editorial spark.
Both compete on the same themes — r-package — within Analytics. common and fmtr 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. common and fmtr 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 common alternatives in Analytics are ranked by recent ship velocity. Browse the "common alternatives" section above for the current picks, or visit /alternatives/common for the full list with editorial commentary on each.
Top fmtr alternatives in Analytics are ranked by recent ship velocity. Browse the "fmtr alternatives" section above for the current picks, or visit /alternatives/fmtr for the full list with editorial commentary on each.