surveyframe 0.4.0

A major release. It adds multi-criteria decision analysis (10 methods), small-sample statistics, text and open-ended response analysis (9 methods), and a disclosed-amendment and Git-linked provenance trail for .sframe files, alongside 4 corrected results and 2 breaking changes. See below for full detail on each.

New: multi-criteria decision analysis (MCDA)

surveyframe’s decision-family extension links survey collection directly to 10 MCDA methods, closing the gap between MCDA computation packages, which assume a clean matrix already exists, and survey software, which has no concept of a decision method at all.

New: small-sample statistics

A track of corrections for comparisons run on small samples, where the ordinary versions of these tests can flip significance on repeated draws from data whose true difference never changed.

New: text and open-ended response analysis

A 9-method text-analysis family for open-ended survey items, from term frequency through topic modelling, sharing the same analysis-plan, role-resolution, and reporting pipeline every other method family uses.

New: disclosed amendments and a Git-linked provenance trail

write_sframe()’s SHA-256 hash proves a .sframe file is unchanged since it was written, but gives no way to distinguish a legitimate revision (a data-entry correction, bot-response removal, a documented model respecification) from an undisclosed edit – both break the hash identically. This release adds a disclosed-revision path alongside the existing hash check, without weakening it.

Corrected results (read before comparing against earlier output)

Four defects found by independent cross-validation are fixed. Each produced normal-looking numbers with no error or warning, so re-run any results computed with an earlier version.

Breaking: validate_sframe() and validate_model() return a diagnostic

Both validators previously returned two different things depending on strict: the object itself, invisibly, when strict = TRUE, and a bare unclassed list when strict = FALSE. Neither was a diagnostic, the success path printed nothing at all, and the strict = FALSE return had no methods. Both now return an sframe_validation object, and they return it visibly, so validate_sframe(instrument) typed at the console shows the user what it found.

Raised by a Journal of Statistical Software editor reviewing the code: “we would at least expect that the object is not silently returned and that the print method is adapted to allow the user to read directly the diagnostic”.

New: accessor and exploration methods for every class

The same review found that the classes carried print, summary and format only, so user code had no route to their contents except $ on the underlying list, which makes the internal layout part of the public contract. Two facts made that concrete: as.data.frame() failed on all 14 result classes with “cannot coerce class … to a data.frame”, and [ dropped the class on the list-backed reports, so results[1:2] silently degraded to a bare list and lost its print method.

The vignettes and the examples are rewritten to use these accessors. The registered S3 method count goes from 41 to 103.

Breaking: the Shiny collector now emits expansion columns

The rated performance matrix can now be wired in both GUIs

Decision analysis: non-results now say so

Data quality

Bundled demo data

Decision analysis

surveyframe 0.3.4

This release completes the plotting, interface, statistics, and reporting work started in 0.3.3. Every analysis family now has a chart, every effect size ships with a confidence interval, reports accept written interpretations and print to PDF, both dashboards gain quality and correlation panels, date questions gain bounds, and the builder and vignettes pass a WCAG 2.2 AA accessibility audit. Hard dependencies are unchanged. naniar and pagedown join Suggests.

Effect sizes and intervals

Psychometrics

Reports and codebook

Written interpretations in reports

Charts

Survey design

Accessibility

Bug fixes

surveyframe 0.3.3

This release adds an opt-in plotting layer, fixes bugs surfaced by the package’s first field deployment, and redesigns the survey-taking experience. ggplot2 joins Suggests; hard dependencies are unchanged.

Analysis and plotting

Survey experience

Data collection

Model syntax

SurveyBuilder and report

surveyframe 0.3.2

This release corrects the package citation, completes the S3 method surface for the component classes, and improves the graphical tools and the HTML report. It adds no new exported functions, no new statistical methods, and no new bundled datasets.

Citation and methods

Graphical tools

HTML report

Documentation

surveyframe 0.3.1

This is a patch release. It fixes the static-survey to Google Sheets to R collection loop, repairs a serialisation defect, and improves the first-time user experience. There are no new exported functions, no new statistical methods, and no new bundled datasets.

Bug fixes

Data collection round-trip

Serialisation

User experience

Documentation

surveyframe 0.3.0

The first CRAN release of the full workflow: a typed instrument object carrying the questions, the analysis plan, and the measurement model, with deployment, collection, analysis, and reporting built around it.

New features

Analysis planning, survey statistics, and model syntax

Static HTML survey export

Interactive response dashboard

Shiny survey module

Extended analysis plan tests

run_analysis_plan() now implements four additional tests used by the SurveyBuilder’s test dropdown:

All four runners produce an APA-formatted summary string and an interpretation prompt field to guide write-up.

Bug fixes

Security hardening

Documentation

Dashboard and report polish

surveyframe 0.1.0

mirror server hosted at Truenetwork, Russian Federation.