Feature/summary#98
Open
rogerssam wants to merge 7 commits into
Open
Conversation
b911880 to
3d21aca
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add
summary()fordesignobjects (and a leanerprint())What
Adds a
summary.design()method (with aprint.summary.design()) that turns a design object into a statistically meaningful evaluation.print()gives a snapshot of main optimisation results, andsummary()lets you evaluate and defend it. Targetsfeature/summary; bumps to 0.0.9.Why
The single combined score that
print()showed isn't enough to judge a design. Biometricians (and workshop audiences) need to see replication, how the score breaks down, and design-quality diagnostics like connectedness and concurrence without dropping into the object internals by hand.Changes
summary.design— returns a queryable"summary.design"list (printing is formatting-only) in three sections:Self-describing design objects —
speed()results now carry ametadatafield recording each level's swap variable, spatial factors, weights, optimisation settings, achieved score and score components. This is the prerequisite that letssummary()report faithfully rather than re-derive.Key design decisions
componentsvector (the additive pieces that sum to its score), captured into metadata with the exact arguments used. So the decomposition is always faithful — including non-additive objectives (Piepho/factorial) and ring-weighted adjacency — and custom objectives that don't expose components simply show the score with no decomposition.lm(~ spatial factors + block + treatment), counting aliased treatment contrasts), base R, nolme4. It adjusts for whatever the design is stratified by, so incomplete-block designs are assessed the way they're actually analysed. It is size-guarded: skipped for very large designs (where the dense fit isexpensive) unless forced.
efficiency = TRUE) — it is the heaviest metric and assumes a row–column model.add_buffers()are a field-layout convenience, not part of the statistical design, soprint()andsummary()silently ignore them.Tests / docs
New
test-summary.Rplus additions across the objective/efficiency tests; roxygen and runnable examples for the new methods; a new "Evaluating a Design" vignette section; aNEWS.mdentry. Full test suite green.