jSDM
Joint species distribution models in Gibbs-sampled C++, quiet since 2023.
A side-by-side editorial comparison of BAS and surveytidy — release velocity, themes, recent moves, and the top alternatives to consider.
A Bayesian model-averaging package spending its 2.0 on memory, not methods.
BAS performs Bayesian variable selection and model averaging for linear and generalized linear models, sampling from a model space too large to enumerate. The visible history splits cleanly: 2023-2024 added sampling machinery — an adaptive independent MCMC sampler with Horvitz-Thompson estimation, hereditary-constraint counting — while 2.0.0 in late 2025 reworked how sampler output is allocated in C. The 2.0.2 patch is a PROTECT fix for rchk warnings.
surveytidy taught every dplyr verb to operate on a whole collection of surveys at once.
surveytidy is the tidyverse-facing half of a two-package survey stack, wrapping survey design objects from surveycore so filter, mutate, select and the rest work on them while carrying variable labels, value labels and a transformation log alongside the data. The May release extended that verb surface to survey_collection, the abstraction surveycore uses to hold several surveys as one object, so a pipeline written once dispatches across every member.
BAS performs Bayesian variable selection and model averaging for linear and generalized linear models, sampling from a model space too large to enumerate. The visible history splits cleanly: 2023-2024 added sampling machinery — an adaptive independent MCMC sampler with Horvitz-Thompson estimation, hereditary-constraint counting — while 2.0.0 in late 2025 reworked how sampler output is allocated in C. The 2.0.2 patch is a PROTECT fix for rchk warnings.
Memory is the binding constraint and the releases say so directly. The hereditary-constraint counter, the GROW option, and the replacement of over-allocation with resizing all attack the same problem: n.models is a guess, and guessing high wastes memory on problems where few unique models are actually visited. The 2.0.0 work was additionally forced by R tightening its C API against non-API calls like SETLENGTH, a constraint every C-heavy CRAN package has been absorbing. Method development has been quiet since 1.7.x.
The 1.7.5 notes call the hereditary-constraint counting a first step and say future updates will cover other constraint types, including polynomials, which remain unhandled. That is the one concrete commitment in this history, though nothing since has returned to it.
surveytidy is the tidyverse-facing half of a two-package survey stack, wrapping survey design objects from surveycore so filter, mutate, select and the rest work on them while carrying variable labels, value labels and a transformation log alongside the data. The May release extended that verb surface to survey_collection, the abstraction surveycore uses to hold several surveys as one object, so a pipeline written once dispatches across every member.
The package is being built in two layers that arrive in order: vector-level transformations first, structural dispatch second. The make_* family in 0.4.0 handles the recoding that survey work actually consists of — labelled to factor, multi-level to dichotomous, scale reversal, valence flipping — with value labels propagating automatically. Collection support then applies data-masking, tidyselect, grouping, slicing and collapsing verbs per survey, with joins explicitly refused and a typed message reporting which surveys were skipped. Metadata fidelity is the recurring bug source: labels surviving across(), stale labels left behind by recoding, the transformation log keeping up with what the verbs did.
Joins are the one verb family that errors on collections, with users directed to join before constructing the collection, so that restriction is the clearest outstanding gap. The re-export of surveycore's collection constructors suggests the package is positioning itself as the single import users need, which points toward more re-exports as surveycore's stable API settles.
Other Infra & APIs 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 BAS or surveytidy.
Joint species distribution models in Gibbs-sampled C++, quiet since 2023.
An ecosystem model starts tracking carbon isotopes and land-use change.
Ten years in, US mapping splits its data out and finally adds Puerto Rico.
Fitness-tracking analysis in slow maintenance, still absorbing upstream breakage.
State-panel tooling holding steady since its 2020 data and ergonomics release.
Five years of compiler and CRAN fixes on a capture-recapture package.
See all BAS alternatives → · See all surveytidy alternatives →
Latest ship moves from both products, interleaved chronologically. ⚡ = editorial spark.
They serve adjacent needs but don't currently overlap on shipped themes. BAS and surveytidy 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. BAS and surveytidy 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 Infra & APIs products to evaluate alongside.
Top BAS alternatives in Infra & APIs are ranked by recent ship velocity. Browse the "BAS alternatives" section above for the current picks, or visit /alternatives/bas for the full list with editorial commentary on each.
Top surveytidy alternatives in Infra & APIs are ranked by recent ship velocity. Browse the "surveytidy alternatives" section above for the current picks, or visit /alternatives/surveytidy for the full list with editorial commentary on each.