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

Refactor `summarize_change()` #1347

Closed Melkiades closed 2 weeks ago

Melkiades commented 3 weeks ago

Fixes #1345

pawelru commented 2 weeks ago

There is a bug in R CMD CHECK workflow logic. Sorry about that. There is a PR to fix it: https://github.com/insightsengineering/r.pkg.template/pull/261

github-actions[bot] commented 2 weeks ago

Unit Tests Summary

    1 files     84 suites   1m 13s ⏱️   870 tests   859 ✅  11 💤 0 ❌ 1 867 runs  1 171 ✅ 696 💤 0 ❌

Results for commit 4f3b5fd2.

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

github-actions[bot] commented 2 weeks ago

Unit Test Performance Difference

Additional test case details | Test Suite | $Status$ | Time on `main` | $±Time$ | Test Case | |:-----|:----:|:----:|:----:|:-----| | summarize_change | 👶 | | $+0.18$ | summarize_change_works_with_custom_statistical_functions |

Results for commit caaae344fa00eae7ba6aa1c0d3df73031a4445b3

♻️ This comment has been updated with latest results.

Melkiades commented 2 weeks ago

@pawelru this is the current error:


! Failed to render 'vignettes/tern_functions_guide.Rmd'.
✖ Quitting from lines 65-87 [unnamed-chunk-3] (tern_functions_guide.Rmd)
Caused by error:
! could not find function "get_additional_analysis_fun_parameters"

In the vignette this function is not present though. Am I missing something obvious?

shajoezhu commented 2 weeks ago

@pawelru this is the current error:


! Failed to render 'vignettes/tern_functions_guide.Rmd'.
✖ Quitting from lines 65-87 [unnamed-chunk-3] (tern_functions_guide.Rmd)
Caused by error:
! could not find function "get_additional_analysis_fun_parameters"

In the vignette this function is not present though. Am I missing something obvious?

it's the function name, I think you can replace this as get_additional_afun_params @Melkiades

shajoezhu commented 2 weeks ago

Error applying analysis function (var - CHG): could not find function ".split_default_from_custom_stats" occured at (row) path: AVISIT[Baseline]

shajoezhu commented 2 weeks ago

hi @Melkiades , can you please update the DESCRIPTION file

--- a/DESCRIPTION
+++ b/DESCRIPTION
@@ -144,6 +144,8 @@ Collate:
     'h_survival_duration_subgroups.R'
     'imputation_rule.R'
     'incidence_rate.R'
+    'individual_patient_plot.R'
+    'kaplan_meier_plot.R'
     'logistic_regression.R'
     'missing_data.R'
     'odds_ratio.R'
@@ -166,6 +168,7 @@ Collate:
     'summarize_glm_count.R'
     'summarize_num_patients.R'
     'summarize_patients_exposure_in_cols.R'
+    'summarize_variables.R'

and rerun roxygen

Melkiades commented 2 weeks ago

hi @Melkiades , can you please update the DESCRIPTION file

--- a/DESCRIPTION
+++ b/DESCRIPTION
@@ -144,6 +144,8 @@ Collate:
     'h_survival_duration_subgroups.R'
     'imputation_rule.R'
     'incidence_rate.R'
+    'individual_patient_plot.R'
+    'kaplan_meier_plot.R'
     'logistic_regression.R'
     'missing_data.R'
     'odds_ratio.R'
@@ -166,6 +168,7 @@ Collate:
     'summarize_glm_count.R'
     'summarize_num_patients.R'
     'summarize_patients_exposure_in_cols.R'
+    'summarize_variables.R'

and rerun roxygen

roxygen2::update.collate(".") does not apply any modifications in my local (there should not be any difference in source files afaik)

github-actions[bot] commented 2 weeks 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                 62       1  98.39%   123
R/count_patients_with_flags.R                 95       1  98.95%   134
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      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, 632, 707, 716, 722, 741, 796-816, 819, 830, 849, 904, 907, 1042-1047
R/g_ipp.R                                    133       0  100.00%
R/g_km.R                                     350      57  83.71%   285-288, 307-309, 363-366, 400, 428, 432-475, 482-486
R/g_lineplot.R                               260      22  91.54%   204, 378-385, 424-434, 543, 551
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                    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                          74       1  98.65%   184
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       145       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                            124       9  92.74%   39, 46, 403-404, 526-530
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                                      10736     469  95.63%

Diff against main

Filename                                  Stmts    Miss  Cover
--------------------------------------  -------  ------  --------
R/summarize_change.R                        +44      +1  -1.35%
R/utils_default_stats_formats_labels.R      +21       0  +100.00%
R/utils_rtables.R                           +24      +5  -3.26%
TOTAL                                       +89      +6  -0.02%

Results for commit: 4f3b5fd232a6314e81689f00f0cb83d5f5d23904

Minimum allowed coverage is 80%

:recycle: This comment has been updated with latest results

shajoezhu commented 2 weeks ago

hi @Melkiades , can you please update the DESCRIPTION file

--- a/DESCRIPTION
+++ b/DESCRIPTION
@@ -144,6 +144,8 @@ Collate:
     'h_survival_duration_subgroups.R'
     'imputation_rule.R'
     'incidence_rate.R'
+    'individual_patient_plot.R'
+    'kaplan_meier_plot.R'
     'logistic_regression.R'
     'missing_data.R'
     'odds_ratio.R'
@@ -166,6 +168,7 @@ Collate:
     'summarize_glm_count.R'
     'summarize_num_patients.R'
     'summarize_patients_exposure_in_cols.R'
+    'summarize_variables.R'

and rerun roxygen

roxygen2::update.collate(".") does not apply any modifications in my local (there should not be any difference in source files afaik)

weired. when I run locally, these get added, and after that, more document rd files get rendered.

shajoezhu commented 2 weeks ago

hi @Melkiades , can you please update the DESCRIPTION file

--- a/DESCRIPTION
+++ b/DESCRIPTION
@@ -144,6 +144,8 @@ Collate:
     'h_survival_duration_subgroups.R'
     'imputation_rule.R'
     'incidence_rate.R'
+    'individual_patient_plot.R'
+    'kaplan_meier_plot.R'
     'logistic_regression.R'
     'missing_data.R'
     'odds_ratio.R'
@@ -166,6 +168,7 @@ Collate:
     'summarize_glm_count.R'
     'summarize_num_patients.R'
     'summarize_patients_exposure_in_cols.R'
+    'summarize_variables.R'

and rerun roxygen

roxygen2::update.collate(".") does not apply any modifications in my local (there should not be any difference in source files afaik)

I think I know why now. I use devtools::document(roclets = c('rd', 'collate', 'namespace')), and I run with roxygen2::update_collate("."), this get updated.

I am using roxygen2 7.3.2, what version do use at the moment @Melkiades

shajoezhu commented 2 weeks ago

downstream works ok https://github.com/insightsengineering/scda.test/pull/161/files

Melkiades commented 2 weeks ago

roxygen2::update_collate(".")

I do have that version but those files are not present in R/