Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix trailing "." when using format_sigfig, add functionality for multiple values #1067

Merged
merged 7 commits into from
Sep 25, 2023

Conversation

edelarua
Copy link
Contributor

Closes #1066

@github-actions
Copy link
Contributor

github-actions bot commented Sep 21, 2023

badge

Code Coverage Summary

Filename                                   Stmts    Miss  Cover    Missing
---------------------------------------  -------  ------  -------  -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
R/abnormal_by_baseline.R                      63       0  100.00%
R/abnormal_by_marked.R                        53       5  90.57%   115-119
R/abnormal_by_worst_grade_worsen.R           114       3  97.37%   233-235
R/abnormal_by_worst_grade.R                   38       0  100.00%
R/abnormal.R                                  41       0  100.00%
R/analyze_variables.R                        192       5  97.40%   483, 686-687, 704-705
R/analyze_vars_in_cols.R                     166      29  82.53%   199-204, 219, 233-234, 242-247, 253-259, 334-340
R/combination_function.R                       9       0  100.00%
R/compare_variables.R                        120      15  87.50%   127-131, 243, 321-330, 385
R/control_incidence_rate.R                    20       8  60.00%   32-35, 38-41
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                          48       1  97.92%   63
R/count_missed_doses.R                        32       0  100.00%
R/count_occurrences_by_grade.R               103       4  96.12%   156-158, 161
R/count_occurrences.R                         73       1  98.63%   92
R/count_patients_events_in_cols.R             67       1  98.51%   62
R/count_patients_with_event.R                 45       0  100.00%
R/count_patients_with_flags.R                 56       4  92.86%   71-72, 77-78
R/count_values.R                              25       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, 239, 254, 262, 268-269
R/d_pkparam.R                                406       0  100.00%
R/decorate_grob.R                            169      40  76.33%   232-263, 323-325, 332, 353-390
R/desctools_binom_diff.R                     663      66  90.05%   52, 87-88, 128-129, 132, 211, 237-246, 285, 287, 307, 311, 315, 319, 375, 378, 381, 384, 445, 453, 465-466, 472-475, 483, 486, 495, 498, 546-547, 549-550, 552-553, 555-556, 626, 638-651, 656, 703, 716, 720
R/df_explicit_na.R                            30       0  100.00%
R/estimate_multinomial_rsp.R                  48       1  97.92%   60
R/estimate_proportion.R                      200      12  94.00%   75-82, 86, 91, 296, 463, 568
R/fit_rsp_step.R                              36       0  100.00%
R/fit_survival_step.R                         36       0  100.00%
R/formatting_functions.R                     162       3  98.15%   145, 155, 243
R/g_forest.R                                 438      23  94.75%   199, 251-252, 319, 336-337, 342-343, 356, 372, 419, 450, 526, 535, 616-620, 630, 705, 708, 832
R/g_lineplot.R                               199      30  84.92%   160, 173, 201, 227-230, 307-314, 332-333, 339-349, 441, 447, 449
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                    40       0  100.00%
R/h_cox_regression.R                         110       0  100.00%
R/h_logistic_regression.R                    468       3  99.36%   206-207, 276
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           75       0  100.00%
R/h_response_subgroups.R                     171      12  92.98%   257-270
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           79       0  100.00%
R/h_survival_duration_subgroups.R            200      12  94.00%   259-271
R/imputation_rule.R                           17       2  88.24%   54-55
R/incidence_rate.R                            94       7  92.55%   53-60
R/individual_patient_plot.R                  133       0  100.00%
R/kaplan_meier_plot.R                        683      65  90.48%   230-233, 273-308, 317-321, 530, 717-719, 727-729, 761-762, 935-938, 1161, 1478-1489
R/logistic_regression.R                      101       0  100.00%
R/missing_data.R                              21       3  85.71%   32, 66, 76
R/odds_ratio.R                               107       0  100.00%
R/prop_diff_test.R                            89       0  100.00%
R/prop_diff.R                                261      16  93.87%   72-75, 107, 269-276, 415, 475, 580
R/prune_occurrences.R                         57      10  82.46%   138-142, 188-192
R/response_biomarkers_subgroups.R             60       0  100.00%
R/response_subgroups.R                       165       4  97.58%   268, 312-314
R/riskdiff.R                                  48       7  85.42%   85-88, 95, 105-106
R/rtables_access.R                            38       4  89.47%   159-162
R/score_occurrences.R                         20       1  95.00%   124
R/split_cols_by_groups.R                      49       0  100.00%
R/stat.R                                      59       3  94.92%   73-74, 129
R/summarize_ancova.R                          96       1  98.96%   180
R/summarize_change.R                          28       0  100.00%
R/summarize_colvars.R                          9       0  100.00%
R/summarize_coxreg.R                         165       2  98.79%   198, 420
R/summarize_glm_count.R                      165       5  96.97%   158, 162-163, 207, 260
R/summarize_num_patients.R                    97       9  90.72%   103-105, 153-154, 235-240
R/summarize_patients_exposure_in_cols.R       97       1  98.97%   56
R/survival_biomarkers_subgroups.R             60       0  100.00%
R/survival_coxph_pairwise.R                   74       9  87.84%   59-67
R/survival_duration_subgroups.R              172       0  100.00%
R/survival_time.R                             48       0  100.00%
R/survival_timepoint.R                       118       7  94.07%   126-132
R/utils_checkmate.R                           68       0  100.00%
R/utils_default_stats_formats_labels.R        95       3  96.84%   408-411
R/utils_factor.R                             109       2  98.17%   84, 302
R/utils_grid.R                               111       5  95.50%   149, 258-264
R/utils_rtables.R                             90       7  92.22%   24, 31-35, 376-377
R/utils.R                                    137      10  92.70%   92, 94, 98, 118, 121, 124, 128, 137-138, 311
TOTAL                                       9564     471  95.08%

Diff against main

Filename                    Stmts    Miss  Cover
------------------------  -------  ------  -------
R/formatting_functions.R       +4       0  +0.05%
TOTAL                          +4       0  +0.00%

Results for commit: 151cd13

Minimum allowed coverage is 80%

♻️ This comment has been updated with latest results

@github-actions
Copy link
Contributor

github-actions bot commented Sep 21, 2023

Unit Tests Summary

       1 files       80 suites   1m 39s ⏱️
   776 tests    767 ✔️     9 💤 0
1 645 runs  1 030 ✔️ 615 💤 0

Results for commit ae10aa8.

♻️ This comment has been updated with latest results.

NEWS.md Outdated Show resolved Hide resolved
Copy link
Contributor

@anajens anajens left a comment

Choose a reason for hiding this comment

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

Thanks @edelarua !

@edelarua edelarua changed the title Fix trailing "." when using format_sigfig Fix trailing "." when using format_sigfig, add functionality for multiple values Sep 22, 2023
R/formatting_functions.R Show resolved Hide resolved
@edelarua
Copy link
Contributor Author

Notes on implementation:

  • Format "fg" is used to format using significant digits - "f" prints with fixed (non-scientific notation) format and "g" causes digits to represent number of significant digits (not decimal places).
  • Without the "#" flag, additional required digits are not correctly added and leading whitespace is added instead. For example:
> formatC(signif(1.5, digits = 3), digits = 3, format = "fg", flag = "#")
[1] "1.50"
> formatC(signif(1.5, digits = 3), digits = 3, format = "fg")
[1] " 1.5"
  • Without sigfig values are not rounded correctly. For example:
> formatC(signif(123123, digits = 3), digits = 3, format = "fg")
[1] "123000"
> formatC(123123, digits = 3, format = "fg")
[1] "123123"

Copy link
Contributor

@Melkiades Melkiades left a comment

Choose a reason for hiding this comment

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

Great job Emily! Thanks for addressing all my doubts :)

Copy link
Contributor

@anajens anajens left a comment

Choose a reason for hiding this comment

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

@edelarua this is looking a lot better but I think we need to be careful about which formats are supported. I suggest to either restrict the format list more explicitly and/or add more tests to verity that all formats in list_valid_format_labels() are supported:

Here's 2 cases to think about, both seem to be bugs in format_value:

(1) this gives an error:

num1 <- c(0.1239)
z <- format_sigfig(3, format = "xx%" )
z(num1)
>Error in x * 100 : non-numeric argument to binary operator

(2) This gives the wrong result "<0.0001"

num2 <- c(1234)
z <- format_sigfig(3, format = "x.xxxx | (<0.0001)" )
z(num2)

@edelarua
Copy link
Contributor Author

@anajens I have specified the formats that work in the documentation and added a check in the function.

Copy link
Contributor

@anajens anajens left a comment

Choose a reason for hiding this comment

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

Thanks, this is much safer 😅

@edelarua edelarua merged commit d5494a9 into main Sep 25, 2023
24 checks passed
@edelarua edelarua deleted the 1066_sigfig_bug@main branch September 25, 2023 19:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Fix bug in format_sigfig causing trailing "."
3 participants