Skip to content

add better messaging to ard_stack_hierarchical - #593

Merged
ddsjoberg merged 12 commits into
mainfrom
525_hierarchical_message
Aug 19, 2026
Merged

add better messaging to ard_stack_hierarchical#593
ddsjoberg merged 12 commits into
mainfrom
525_hierarchical_message

Conversation

@alanahjonas95

@alanahjonas95 alanahjonas95 commented Aug 6, 2026

Copy link
Copy Markdown
Collaborator

What changes are proposed in this pull request?

  • Style this entry in a way that can be copied directly into NEWS.md. (#, @)

Provide more detail here as needed.

Reference GitHub issue associated with pull request. e.g., 'closes #'
closes #525

  • ard_stack_hierarchical() now informs users when columns in the by argument are not present in denominator, clarifying that subjects with multiple values in those columns are counted once in the last sorted level.

Pre-review Checklist (if item does not apply, mark is as complete)

  • All GitHub Action workflows pass with a ✅
  • PR branch has pulled the most recent updates from master branch: usethis::pr_merge_main()
  • If a bug was fixed, a unit test was added.
  • Code coverage is suitable for any new functions/features (generally, 100% coverage for new code): devtools::test_coverage()
  • Request a reviewer

Reviewer Checklist (if item does not apply, mark is as complete)

  • If a bug was fixed, a unit test was added.
  • Run pkgdown::build_site(). Check the R console for errors, and review the rendered website.
  • Code coverage is suitable for any new functions/features: devtools::test_coverage()

When the branch is ready to be merged:

  • Update NEWS.md with the changes from this pull request under the heading "# cards (development version)". If there is an issue associated with the pull request, reference it in parentheses at the end update (see NEWS.md for examples).
  • All GitHub Action workflows pass with a ✅
  • Approve Pull Request
  • Merge the PR. Please use "Squash and merge" or "Rebase and merge".

Optional Reverse Dependency Checks:

Install checked with pak::pak("Genentech/checked") or pak::pak("checked")

# Check dev versions of `cardx`, `gtsummary`, and `tfrmt` which are in the `ddsjoberg` R Universe
Rscript -e "options(checked.check_envvars = c(NOT_CRAN = TRUE)); checked::check_rev_deps(path = '.', n = parallel::detectCores() - 2L, repos = c('https://ddsjoberg.r-universe.dev', 'https://cloud.r-project.org'))"

# Check CRAN reverse dependencies but run tests skipped on CRAN
Rscript -e "options(checked.check_envvars = c(NOT_CRAN = TRUE)); checked::check_rev_deps(path = '.', n = parallel::detectCores() - 2, repos = 'https://cloud.r-project.org')"

# Check CRAN reverse dependencies in a CRAN-like environment
Rscript -e "options(checked.check_envvars = c(NOT_CRAN = FALSE), checked.check_build_args = '--as-cran'); checked::check_rev_deps(path = '.', n = parallel::detectCores() - 2, repos = 'https://cloud.r-project.org')"

@alanahjonas95 alanahjonas95 changed the title add better messaging add better messaging to ard_stack_hierarchical Aug 6, 2026
@github-actions

github-actions Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

Unit Tests Summary

  1 files  276 suites   18s ⏱️
276 tests 182 ✅  94 💤 0 ❌
628 runs  501 ✅ 127 💤 0 ❌

Results for commit 7675dc6.

@github-actions

github-actions Bot commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

Unit Test Performance Difference

Additional test case details
Test Suite $Status$ Time on main $±Time$ Test Case
ard_stack_hierarchical 💚 $2.81$ $-1.03$ ard_stack_hierarchical_variables_

Results for commit aa16f90

♻️ This comment has been updated with latest results.

@alanahjonas95
alanahjonas95 marked this pull request as draft August 7, 2026 08:45
@alanahjonas95
alanahjonas95 marked this pull request as ready for review August 12, 2026 09:35
@alanahjonas95
alanahjonas95 requested a review from bzkrouse August 12, 2026 09:36
@github-actions

github-actions Bot commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

badge

Code Coverage Summary

Filename                       Stmts    Miss  Cover    Missing
---------------------------  -------  ------  -------  ---------------------------------------------------------------------------------------------------------------------------------------
R/add_calculated_row.R            53       6  88.68%   51-56
R/apply_fmt_fun.R                116       0  100.00%
R/ard_attributes.R                46       1  97.83%   57
R/ard_formals.R                   13       0  100.00%
R/ard_hierarchical.R             104      12  88.46%   88-93, 187-192
R/ard_identity.R                  13       0  100.00%
R/ard_missing.R                   70       7  90.00%   45-50, 61
R/ard_mvsummary.R                 54       7  87.04%   76-81, 100
R/ard_pairwise.R                  50       0  100.00%
R/ard_stack_hierarchical.R       285       0  100.00%
R/ard_stack.R                     98       0  100.00%
R/ard_strata.R                    38       0  100.00%
R/ard_summary.R                  200       8  96.00%   87-92, 226-227
R/ard_tabulate_rows.R             12       0  100.00%
R/ard_tabulate_value.R            85       8  90.59%   51-56, 73, 97
R/ard_tabulate.R                 629     103  83.62%   108-113, 194, 271, 310, 400, 412-415, 547, 607-612, 643, 819-823, 829-842, 873, 880-885, 889-908, 944-954, 958-977, 981-985, 1015, 1048
R/ard_total_n.R                   19       0  100.00%
R/as_card_fn.R                     8       0  100.00%
R/as_card.R                       14       0  100.00%
R/as_nested_list.R                41       0  100.00%
R/bind_ard.R                      49      11  77.55%   74-85
R/cards-package.R                  1       1  0.00%    14
R/check_ard_structure.R           55       5  90.91%   35-39
R/compare_ard_helpers.R          127      32  74.80%   44-50, 66-69, 113, 148, 153, 158-184, 227, 230
R/compare_ard.R                   26       0  100.00%
R/default_stat_labels.R           20       0  100.00%
R/deprecated.R                    34      30  11.76%   40-41, 56-73, 88-134
R/diff_ard_hierarchical.R        227       0  100.00%
R/eval_capture_conditions.R       30       0  100.00%
R/filter_ard_hierarchical.R      209       0  100.00%
R/get_ard_statistics.R            20       0  100.00%
R/maximum_variable_value.R        13       0  100.00%
R/mock.R                         137       2  98.54%   116, 245
R/nest_for_ard.R                  80       1  98.75%   64
R/print_ard_conditions.R          83       0  100.00%
R/print.R                         77       2  97.40%   190-191
R/process_selectors.R            116       1  99.14%   326
R/rename_ard_columns.R            84       0  100.00%
R/rename_ard_groups.R             60       0  100.00%
R/replace_null_statistic.R        11       0  100.00%
R/round5.R                         1       0  100.00%
R/selectors.R                     23       0  100.00%
R/shuffle_ard.R                  167       0  100.00%
R/sort_ard_hierarchical.R        195       0  100.00%
R/summary_functions.R             25       1  96.00%   59
R/tidy_ard_order.R                42       0  100.00%
R/tidy_as_ard.R                   40       0  100.00%
R/unlist_ard_columns.R            28       0  100.00%
R/update_ard.R                    60       6  90.00%   54-59
R/utils.R                         32       1  96.88%   37
TOTAL                           4020     245  93.91%

Diff against main

Filename                      Stmts    Miss  Cover
--------------------------  -------  ------  --------
R/ard_stack_hierarchical.R      +13       0  +100.00%
TOTAL                           +13       0  +0.02%

Results for commit: ca30e24

Minimum allowed coverage is 80%

♻️ This comment has been updated with latest results

ddsjoberg and others added 3 commits August 18, 2026 21:47
Stacked onto #593. Addresses review feedback on the new
`ard_stack_hierarchical()` messaging.

**Changes**
- **Grammar / pluralization** — "is/are not present" now agrees with the
number of missing columns (via `cli::qty()`), and "values" is always
plural. Previously a single missing column produced "…is not
present…multiple `AESEV` value" and multiple columns produced "…is not
present" (should be "are").
- **Remove the row count** — the number of dropped rows is
level-dependent (coarser hierarchy levels collapse more rows), so no
single figure is accurate. The message now states that rows were removed
without citing a count. The `n_dropped > 0L` gate is retained so the
message still only fires when collapsing actually occurs.
- **NEWS.md** — added an entry for the new messaging (#525).
- **Test style** — removed a stray double blank line.


Snapshots updated to match; cli rendering verified in isolation.

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>

@ddsjoberg ddsjoberg left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thank you @alanahjonas95 !

@ddsjoberg
ddsjoberg merged commit 28e73a0 into main Aug 19, 2026
28 of 31 checks passed
@ddsjoberg
ddsjoberg deleted the 525_hierarchical_message branch August 19, 2026 17:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Feature or bug? ard_stack_hierarchical drops levels of by variables that are not present in denominator data

2 participants