NEWS
lagdynamics 0.32 (2026-07-21)
New features
transitions() now reads inference results, not only fitted models. It
accepts the output of bootstrap_lsa(), certainty_lsa(),
stability_lsa(), permute_lsa(), compare_lsa(),
bayes_compare_lsa() and lsa_lags(), and returns the same tidy
one-row-per-transition data frame. significant = TRUE keeps the
transitions the method itself flags, and sort = "strength" orders them
by that method's signed effect. Previously the per-transition table of an
inference result was reachable only through as.data.frame(), because the
print methods show a header summary alone.
- The
transitions() generic is now transitions(fit, ...), so each class
declares only the arguments backed by columns it actually has. Existing
calls on a fit are unaffected.
Documentation
- Vignettes restore the user's
options() after changing digits, as CRAN
requires.
- Vignettes read every result with
transitions() rather than coercing it
with as.data.frame(), and select rows with the significant argument
rather than subsetting.
- Removed the citations, reference lists, DOIs, documentation URLs and
linked author metadata that 0.31 added to the shipped vignettes.
lagdynamics 0.31
CRAN candidate
- Prepared the package for first CRAN submission.
- Moved
ggplot2 and cograph from Suggests to Imports so the plotting
surface works out of the box; plotting examples now run during checks.
The analytical core still depends only on base R.
- Added a dedicated interoperability vignette covering wide data, long
event logs,
tna, Nestimate, cograph, and lsa_to_tna().
- Added linked author metadata and Dynalytics framework links to all
shipped vignettes.
- Restored
lsa_to_tna() for handing an lsa fit to tna tooling.
- Added ingestion of
Nestimate::build_network() netobjects through
their prepared sequence data.
- Stored the bundled
engagement data as a data frame so
tna::tna(engagement) works directly.
- Removed dead package-site URLs from CRAN-visible metadata.
- Added future CRAN installation instructions to the README.
- Included
NEWS.md in the source package.
lagdynamics 0.3.0
Interoperability and documentation
- Added integration tests for
cograph, Nestimate, and the Dynalytics
evidence surface.
- Added native TNA-style aliases:
weights = "tna" and
weights = "relative" now map to transition probabilities.
- Updated plotting documentation and vignettes to use
weights = "tna" for probability-weighted transition networks.
- Added and reorganised vignettes:
intro: conceptual overview and package map.
lagdynamics: concise quick start.
workflow: complete applied workflow.
interop: interoperability with sibling packages.
lag-transition-networks: transition-network interpretation.
confirmatory: evidence and uncertainty workflow.
plotting: plot gallery.
- Removed public documentation references to unexported internals.
- Made long-format input more flexible:
action is the only mandatory
long-format column, with optional actor, session, time, and
order.
- Added warnings for single-sequence bootstrap and permutation cases
where the requested procedure has limited inferential meaning.
lagdynamics 0.2.0
Confirmatory workflow and group comparison
- Added the Dynalytics-style confirmatory evidence battery:
certainty_lsa(), bootstrap_lsa(), reliability_lsa(),
stability_lsa(), and permute_lsa().
- Added group comparison with
compare_lsa() and Bayesian group
comparison with bayes_compare_lsa().
- Added grouped
lsa() fits through group = ..., with grouped
methods for transitions(), nodes(), tests(), initial(),
plotting, reliability, and comparison workflows.
- Added tidy
as.data.frame() methods for inference and comparison
result objects.
- Added the unified plotting surface:
residual heatmaps, residual networks, TNA probability networks, chord
diagrams, sunbursts, uncertainty forests, and group-comparison plots.
- Added native transition and initial probabilities:
transition_probabilities() and initial().
- Added bundled long-format data for examples and tests.
lagdynamics 0.1.0
Initial implementation
- Created a from-scratch, clean-room implementation of lag sequential
analysis for categorical event sequences.
- Added the unified
lsa() constructor and canonical sequence handling
through lsa_data() and lsa_transitions().
- Added five built-in engines:
classical, two_cell, bidirectional, parallel_dominance, and
nonparallel_dominance.
- Added convenience wrappers:
lsa_classical(), lsa_two_cell(), lsa_bidirectional(),
lsa_parallel_dominance(), and lsa_nonparallel_dominance().
- Added the pluggable engine registry:
register_lsa_engine(), get_lsa_engine(), list_lsa_engines(),
and unregister_lsa_engine().
- Added tidy reading verbs:
transitions(), nodes(), tests(), initial(), and summary().
- Added multi-lag helpers with
lsa_lags() and lag_profile().
- Added structural-zero handling through
loops = FALSE and arbitrary
structural-zero matrices.
- Added experimental
transfer_entropy() for directed categorical
information-flow analysis.
- Kept runtime dependencies minimal: only base R packages are imported
(
grDevices, grid, stats, and utils).