insightsengineering / tern

Table, Listings, and Graphs (TLG) library for common outputs used in clinical trials
https://insightsengineering.github.io/tern/
Other
77 stars 22 forks source link

Adds `denom` argument to count `s_*` functions #1326

Closed edelarua closed 1 month ago

edelarua commented 1 month ago

Pull Request

Fixes #1325

Adds denom to s_count_occurrences_by_grade() as well as s_count_cumulative() and s_count_missed_doses().

Downstream changes:

github-actions[bot] commented 1 month ago

Unit Tests Summary

    1 files     84 suites   1m 13s :stopwatch:   863 tests   852 :white_check_mark:  11 :zzz: 0 :x: 1 853 runs  1 164 :white_check_mark: 689 :zzz: 0 :x:

Results for commit 6902b5da.

:recycle: This comment has been updated with latest results.

github-actions[bot] commented 1 month ago

Unit Test Performance Difference

Additional test case details | Test Suite | $Status$ | Time on `main` | $±Time$ | Test Case | |:-----|:----:|:----:|:----:|:-----| | count_cumulative | 👶 | | $+0.13$ | count_cumulative_works_with_denom_argument_specified | | count_missed_doses | 👶 | | $+0.12$ | count_missed_doses_works_with_denom_argument_specified | | count_occurrences_by_grade | 👶 | | $+0.02$ | a_count_occurrences_by_grade_works_with_custom_input. | | count_occurrences_by_grade | 👶 | | $+0.02$ | a_count_occurrences_by_grade_works_with_healthy_input. | | count_occurrences_by_grade | 👶 | | $+0.19$ | count_occurrences_by_grade_works_with_denom_argument_specified | | count_occurrences_by_grade | 👶 | | $+0.20$ | summarize_occurrences_works_as_expected_with_risk_difference_column |

Results for commit 4051300de9a7ab135bc54e9f8deaf685d76c7dcf

♻️ This comment has been updated with latest results.

github-actions[bot] commented 1 month ago

badge

Code Coverage Summary

Filename                                   Stmts    Miss  Cover    Missing
---------------------------------------  -------  ------  -------  ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
R/abnormal_by_baseline.R                      65       0  100.00%
R/abnormal_by_marked.R                        55       5  90.91%   93-97
R/abnormal_by_worst_grade_worsen.R           116       3  97.41%   263-265
R/abnormal_by_worst_grade.R                   60       0  100.00%
R/abnormal.R                                  43       0  100.00%
R/analyze_variables.R                        166       2  98.80%   486, 626
R/analyze_vars_in_cols.R                     176      13  92.61%   178, 221, 235-236, 244-252
R/bland_altman.R                              92       1  98.91%   46
R/combination_function.R                       9       0  100.00%
R/compare_variables.R                         84       2  97.62%   257, 316
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                          15       0  100.00%
R/count_cumulative.R                          59       1  98.31%   74
R/count_missed_doses.R                        36       0  100.00%
R/count_occurrences_by_grade.R               157       2  98.73%   177, 271
R/count_occurrences.R                        116       1  99.14%   120
R/count_patients_events_in_cols.R             67       1  98.51%   60
R/count_patients_with_event.R                 47       0  100.00%
R/count_patients_with_flags.R                 58       0  100.00%
R/count_values.R                              27       0  100.00%
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                            113       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                  50       1  98.00%   65
R/estimate_proportion.R                      205      11  94.63%   83-90, 94, 99, 320, 486
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      59  89.91%   241, 253-256, 261-262, 278, 288-291, 336-339, 346, 415, 502, 515, 519-520, 525-526, 539, 555, 602, 633, 708, 717, 723, 742, 797-817, 820, 831, 850, 905, 908, 1043-1048
R/g_ipp.R                                    133       0  100.00%
R/g_km.R                                     350      57  83.71%   286-289, 308-310, 364-367, 401, 429, 433-476, 483-487
R/g_lineplot.R                               243      22  90.95%   196, 370-377, 416-426, 518, 526
R/g_step.R                                    68       1  98.53%   109
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                    46       0  100.00%
R/h_cox_regression.R                         110       0  100.00%
R/h_incidence_rate.R                          45       0  100.00%
R/h_km.R                                     509      41  91.94%   137, 189-194, 287, 378, 380-381, 392-394, 413, 420-421, 423-425, 433-435, 460, 465-468, 651-654, 1108-1119
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           90      12  86.67%   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           88       6  93.18%   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                            86       7  91.86%   67-72, 152
R/logistic_regression.R                      102       0  100.00%
R/missing_data.R                              21       3  85.71%   32, 66, 76
R/odds_ratio.R                               117       0  100.00%
R/prop_diff_test.R                            91       0  100.00%
R/prop_diff.R                                265      15  94.34%   70-73, 105, 290-297, 440, 605
R/prune_occurrences.R                         57       0  100.00%
R/response_biomarkers_subgroups.R             69       6  91.30%   196-201
R/response_subgroups.R                       213       8  96.24%   100-105, 260-261
R/riskdiff.R                                  65       5  92.31%   102-105, 114
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                         106       2  98.11%   183, 188
R/summarize_change.R                          30       0  100.00%
R/summarize_colvars.R                         10       0  100.00%
R/summarize_coxreg.R                         172       0  100.00%
R/summarize_glm_count.R                      209       3  98.56%   193-194, 490
R/summarize_num_patients.R                    93       4  95.70%   117-119, 266
R/summarize_patients_exposure_in_cols.R       96       1  98.96%   56
R/survival_biomarkers_subgroups.R             78       6  92.31%   117-122
R/survival_coxph_pairwise.R                   79      11  86.08%   51-52, 64-72
R/survival_duration_subgroups.R              211       6  97.16%   124-129
R/survival_time.R                             79       0  100.00%
R/survival_timepoint.R                       113       7  93.81%   125-131
R/utils_checkmate.R                           68       0  100.00%
R/utils_default_stats_formats_labels.R       124       0  100.00%
R/utils_factor.R                             109       2  98.17%   84, 302
R/utils_ggplot.R                             110       0  100.00%
R/utils_grid.R                               126       5  96.03%   164, 279-286
R/utils_rtables.R                            100       4  96.00%   39, 46, 403-404
R/utils_split_funs.R                          52       2  96.15%   82, 94
R/utils.R                                    141       7  95.04%   118, 121, 124, 128, 137-138, 332
TOTAL                                      10578     460  95.65%

Diff against main

Filename                          Stmts    Miss  Cover
------------------------------  -------  ------  --------
R/count_cumulative.R                 +9       0  +0.31%
R/count_missed_doses.R               +2       0  +100.00%
R/count_occurrences_by_grade.R      +44      +1  -0.39%
R/count_occurrences.R                +1       0  +0.01%
TOTAL                               +56      +1  +0.01%

Results for commit: 6902b5da224f7a2d73f19eec70e63d86ecb96bf4

Minimum allowed coverage is 80%

:recycle: This comment has been updated with latest results

shajoezhu commented 1 month ago

Hi @edelarua , this looks really great! Thank you. I was wondering if you could update downstream scda.test and tlg-c accordingly please. use staged dependencies.

@pawelru , I was wondering if we could set a meeting and follow-up on a poc, demo how to the above with pak please? thank you!