Skip to content

Expose digits argument for h_tbl_median_surv#1469

Open
Copilot wants to merge 7 commits into
mainfrom
copilot/expose-digits-argument-h-tbl-median-surv
Open

Expose digits argument for h_tbl_median_surv#1469
Copilot wants to merge 7 commits into
mainfrom
copilot/expose-digits-argument-h-tbl-median-surv

Conversation

Copy link
Copy Markdown

Copilot AI commented Feb 12, 2026

Pull Request

Fixes #1467

Changes

  • h_tbl_median_surv(): Added digits parameter (default: 4) to control signif() precision for median and CI values.
  • control_surv_med_annot(): Added digits parameter to expose the setting via the control interface.
  • g_km(): Passes digits from control_annot_surv_med with %||% 4 fallback for backward compatibility.

Usage

# Via control object in g_km()
g_km(
  df = df,
  variables = variables,
  control_annot_surv_med = control_surv_med_annot(digits = 2)
)

# Direct function call
h_tbl_median_surv(fit_km = fit, digits = 2)

Backward compatible: default value maintains existing behavior.

Copilot AI changed the title [WIP] Expose digits argument for h_tbl_median_surv function Expose digits argument for h_tbl_median_surv Feb 12, 2026
Copilot AI requested a review from shajoezhu February 12, 2026 17:35
@shajoezhu shajoezhu marked this pull request as ready for review February 12, 2026 18:37
@shajoezhu shajoezhu requested a review from donyunardi February 12, 2026 18:37
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Feb 12, 2026

Unit Tests Summary

    1 files     85 suites   1m 38s ⏱️
  910 tests   901 ✅   9 💤 0 ❌
2 266 runs  1 553 ✅ 713 💤 0 ❌

Results for commit 77003a9.

♻️ This comment has been updated with latest results.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Feb 12, 2026

Unit Test Performance Difference

Additional test case details
Test Suite $Status$ Time on main $±Time$ Test Case
h_km 👶 $+0.02$ control_surv_med_annot_works_with_custom_digits
h_km 👶 $+0.04$ h_tbl_median_surv_respects_digits_parameter

Results for commit 8eedcbd

♻️ This comment has been updated with latest results.

Copy link
Copy Markdown

@donyunardi donyunardi left a comment

Choose a reason for hiding this comment

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

Hi @shajoezhu

  • Should the digit be exposed all the way to the top to g_km? This is the function that's ultimately being used for tm_g_km
  • there's no request to address h_km. This seems to be out-of-scope from the intended issue. Or is there any relationship between g_km and h_km?
  • CI/CD did not pass, usually we make sure it passed before review.

@Melkiades
Copy link
Copy Markdown
Contributor

is this still active @shajoezhu @donyunardi?

Expose digits parameter (default 4) to control signif() precision
for median survival time and CI values in the annotation table.
The parameter is passed through from g_km() via control_annot_surv_med.
@Melkiades Melkiades force-pushed the copilot/expose-digits-argument-h-tbl-median-surv branch from 344bf69 to 1b7a759 Compare May 20, 2026 15:12
@Melkiades
Copy link
Copy Markdown
Contributor

@donyunardi all points here should have been addressed:

  1. digits flows through control_surv_med_annot() → g_km(), consistent with how x, y, w, h, fill are already handled. No need for a top-level g_km() argument.
  2. h_tbl_median_surv() is the function from issue [Feature Request]: Expose the digits argument in tern::h_tbl_median_surv() #1467 — it lives in h_km.R. control_surv_med_annot() (same file) is the control interface that connects it to g_km().
  3. Branch rebased on main, snapshots added, CI should be green now (doing roxygen2 fix now)

Melkiades added 3 commits May 20, 2026 20:43
dplyr 1.2.0 deprecated case_match() in favor of recode_values().
@Melkiades Melkiades requested a review from donyunardi May 20, 2026 18:49
@Melkiades Melkiades enabled auto-merge (squash) May 20, 2026 18:50
@Melkiades Melkiades disabled auto-merge May 21, 2026 08:36
Melkiades added 2 commits May 21, 2026 10:39
…surv

Signed-off-by: Davide Garolini <davide.garolini@roche.com>
@github-actions
Copy link
Copy Markdown
Contributor

badge

Code Coverage Summary

Filename                                   Stmts    Miss  Cover    Missing
---------------------------------------  -------  ------  -------  ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
R/abnormal_by_baseline.R                     101       3  97.03%   242, 244-245
R/abnormal_by_marked.R                        88       8  90.91%   94-98, 281, 283-284
R/abnormal_by_worst_grade.R                   94       3  96.81%   215, 217-218
R/abnormal_lab_worsen_by_baseline.R          159      10  93.71%   205-208, 213, 215-216, 459-461
R/abnormal.R                                  78       2  97.44%   222, 224
R/analyze_variables.R                        320      11  96.56%   593-596, 818-823, 831
R/analyze_vars_in_cols.R                     178      14  92.13%   178, 221, 235-236, 238, 246-254
R/bland_altman.R                              92       1  98.91%   46
R/combination_function.R                       9       0  100.00%
R/compare_variables.R                         35       0  100.00%
R/control_incidence_rate.R                    10       0  100.00%
R/control_logistic.R                           7       0  100.00%
R/control_step.R                              23       1  95.65%   58
R/control_survival.R                          16       0  100.00%
R/count_cumulative.R                         115       4  96.52%   74, 270-271, 273
R/count_missed_doses.R                        89       4  95.51%   206-209
R/count_occurrences_by_grade.R               169       8  95.27%   178, 386, 388, 465, 467, 469, 473-474
R/count_occurrences.R                        137      10  92.70%   119, 262-264, 330-332, 334, 338-339
R/count_patients_events_in_cols.R             67       1  98.51%   60
R/count_patients_with_event.R                 73       2  97.26%   220, 223
R/count_patients_with_flags.R                 93       2  97.85%   234, 236
R/count_values.R                              61       2  96.72%   193, 196
R/cox_regression_inter.R                     154       0  100.00%
R/cox_regression.R                           161       0  100.00%
R/coxph.R                                    167       7  95.81%   191-195, 238, 253, 261, 267-268
R/d_pkparam.R                                406       0  100.00%
R/decorate_grob.R                            116       0  100.00%
R/desctools_binom_diff.R                     621      64  89.69%   53, 88-89, 125-126, 129, 199, 223-232, 264, 266, 286, 290, 294, 298, 353, 356, 359, 362, 422, 430, 439, 444-447, 454, 457, 466, 469, 516-517, 519-520, 522-523, 525-526, 593, 604-616, 620, 663, 676, 680
R/df_explicit_na.R                            30       0  100.00%
R/estimate_multinomial_rsp.R                  86       4  95.35%   65, 212, 214-215
R/estimate_proportion.R                      240       7  97.08%   88, 99, 255, 257-258, 389, 553
R/fit_rsp_step.R                              36       0  100.00%
R/fit_survival_step.R                         36       0  100.00%
R/formatting_functions.R                     183       2  98.91%   141, 276
R/g_forest.R                                 585      60  89.74%   240, 252-255, 260-261, 275, 277, 287-290, 335-338, 345, 414, 501, 514, 518-519, 524-525, 538, 554, 601, 630, 705, 714, 720, 739, 794-814, 817, 828, 847, 902, 905, 1040-1045
R/g_ipp.R                                    133       0  100.00%
R/g_km.R                                     354      57  83.90%   285-288, 307-309, 363-366, 400, 428, 432-475, 482-486
R/g_lineplot.R                               261      22  91.57%   222, 397-404, 443-453, 562, 570
R/g_step.R                                    68       1  98.53%   108
R/g_waterfall.R                               47       0  100.00%
R/h_adsl_adlb_merge_using_worst_flag.R        73       0  100.00%
R/h_biomarkers_subgroups.R                    91      23  74.73%   40-42, 84-103
R/h_cox_regression.R                         110       0  100.00%
R/h_incidence_rate.R                          45       0  100.00%
R/h_km.R                                     509      39  92.34%   146, 198-203, 296, 387, 389-390, 401-403, 422, 429-430, 432-434, 442-444, 469, 474-477, 660-663, 1117-1126
R/h_logistic_regression.R                    468       3  99.36%   203-204, 273
R/h_map_for_count_abnormal.R                  54       0  100.00%
R/h_pkparam_sort.R                            15       0  100.00%
R/h_response_biomarkers_subgroups.R           77      12  84.42%   50-55, 107-112
R/h_response_subgroups.R                     178      18  89.89%   257-270, 329-334
R/h_stack_by_baskets.R                        64       1  98.44%   89
R/h_step.R                                   180       0  100.00%
R/h_survival_biomarkers_subgroups.R           73       6  91.78%   111-116
R/h_survival_duration_subgroups.R            207      18  91.30%   259-271, 336-341
R/imputation_rule.R                           17       0  100.00%
R/incidence_rate.R                           103       7  93.20%   68-73, 242
R/logistic_regression.R                      102       0  100.00%
R/missing_data.R                              26       5  80.77%   39, 62-63, 96, 106
R/odds_ratio.R                               157       4  97.45%   270-273
R/prop_diff_test.R                           174       2  98.85%   264, 266
R/prop_diff.R                                495      21  95.76%   95-99, 136, 332, 334, 420-427, 576, 849, 1021, 1025, 1028
R/prune_occurrences.R                         57       0  100.00%
R/response_biomarkers_subgroups.R            124      10  91.94%   88-91, 270-275
R/response_subgroups.R                       252      16  93.65%   100-105, 271-275, 280, 282-283, 310-311
R/riskdiff.R                                  65       4  93.85%   94-97
R/rtables_access.R                            38       0  100.00%
R/score_occurrences.R                         20       1  95.00%   124
R/split_cols_by_groups.R                      49       0  100.00%
R/stat.R                                      59       0  100.00%
R/summarize_ancova.R                         150       2  98.67%   327-328
R/summarize_change.R                          72       3  95.83%   175, 177-178
R/summarize_colvars.R                         13       1  92.31%   75
R/summarize_coxreg.R                         172       0  100.00%
R/summarize_glm_count.R                      269      10  96.28%   129-130, 202-203, 459-463, 596
R/summarize_num_patients.R                   121      10  91.74%   122-124, 244, 248, 252-253, 337-338, 340
R/summarize_patients_exposure_in_cols.R      155       7  95.48%   58, 232-233, 237, 357-358, 362
R/survival_biomarkers_subgroups.R            136      10  92.65%   117-122, 228-231
R/survival_coxph_pairwise.R                  154       9  94.16%   55-56, 124, 138, 145, 149, 288, 290-291
R/survival_duration_subgroups.R              250      15  94.00%   124-129, 268-273, 286, 288-289
R/survival_time.R                            120       1  99.17%   251
R/survival_timepoint.R                       153       2  98.69%   320, 322
R/utils_checkmate.R                           68       0  100.00%
R/utils_default_stats_formats_labels.R       201       0  100.00%
R/utils_factor.R                              87       1  98.85%   99
R/utils_ggplot.R                             110       0  100.00%
R/utils_grid.R                               126       5  96.03%   164, 279-286
R/utils_rtables.R                            125       9  92.80%   39, 46, 414-415, 537-541
R/utils_split_funs.R                          52       2  96.15%   82, 94
R/utils.R                                    141       7  95.04%   131, 134, 137, 141, 150-151, 345
TOTAL                                      12255     594  95.15%

Diff against main

Filename      Stmts    Miss  Cover
----------  -------  ------  -------
R/g_km.R         +4       0  +0.18%
R/h_km.R          0      -2  +0.39%
TOTAL            +4      -2  +0.02%

Results for commit: 77003a9

Minimum allowed coverage is 80%

♻️ This comment has been updated with latest results

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 Request]: Expose the digits argument in tern::h_tbl_median_surv()

4 participants