Skip to content

Releases: insightsengineering/tern

v0.8.2

22 May 23:39
c0b9e1b
Compare
Choose a tag to compare

Breaking Changes

  • Refactored s_coxreg and summarize_coxregto work with new analysis function a_coxreg.

Bug Fixes

  • Fixed missing label for TRTEDTM in tern datasets.
  • Fixed improper implementation of na_level argument in summarize_vars preventing it from having an effect.

Enhancements

  • Added section_div and na_level arguments to summarize_vars.
  • Added median_range as a numeric variable statistic option for summarize_vars.
  • Corrected ordering of factor levels by d_onco_rsp_label.
  • Added new "Analyze Functions", "Summarize Functions", and "Analyze Functions on Columns" overview pages.
  • Consolidated all KM plot documentation within the g_km function.
  • Added a_count_patients_sum_exposure for summarize_patients_exposure_in_cols and new analyze function analyze_patients_exposure_in_cols.
  • Added more informative error when the user selects an invalid method for unstratified analyses in s_proportion_diff.

Miscellaneous

  • Implemented the lubridate package for date variables in tern datasets.
  • Organized .gitignore and .Rbuildignore files.
  • Removed deprecated footnotes functions and all related files.
  • Started deprecation cycle for pairwise function.
  • Moved count_patients_with_flags functions from count_patients_with_event.R to count_patients_with_flags.R.

What's Changed

Full Changelog: v0.8.1...v0.8.2

v0.8.1

24 Mar 07:13
1c230e3
Compare
Choose a tag to compare

Bug Fixes

  • Fixed missing label for TRTEDTM in tern datasets.

Miscellaneous

  • Implemented the lubridate package for date variables in tern datasets.

What's Changed

  • Fix dates in tern data [skip vbump] by @edelarua in #861
  • Fix missing label for TRTEDTM in tern data [skip vbump] by @edelarua in #863
  • [skip vbump] replacing version from 0.8.0 to 0.8.1 by @shajoezhu in #864

Full Changelog: v0.8.0...v0.8.1

v0.8.0

11 Mar 20:27
8944f2c
Compare
Choose a tag to compare

Enhancements

  • Added summarize_glm_count function to analyze count data using a linear model.
  • Added legend to g_step.
  • Added formatting functions format_fraction_fixed_dp and
    format_count_fraction_fixed_dp with fixed single decimal place in percentages.
  • Added na_level and labelstr arguments to summarize_vars_in_cols.
  • Added analyze_num_patients to include summary at the beginning that does not
    repeat when paginating.
  • Added h_row_first_values function as a more general helper function to retrieve
    first values from specific rows.
  • Added option to remove "(n)" suffix from unique_count labels for s_num_patients.
  • Added options to g_km to annotate with statistics (annot_stats) and add corresponding
    vertical lines (annot_stats_lines).

Bug Fixes

  • Fixed bug causing incorrect ordering of numeric grade levels when missing
    grades are present in s_count_occurrences_by_grade.
  • Refactored summarize_vars_in_cols to work with pagination machinery.
  • Fixed bug to allow passing of conf_level argument to emmeans::contrast() in s_ancova.
  • Fixed bugs in rtables_access.R caused by not checking for specific combinations
    (also the standard values that were never used) of column indices and names.
  • Fixed single applicable record bug in count_abnormal_by_grade.
  • Fixed bug in add_rowcounts that caused all row count row values to count as zero.
  • Fixed bug in h_col_indices causing an error when pruning with combination columns.
  • Fixed bug in test_proportion_diff missing argument for var_labels.

Documentation and Tests

  • Added more tests to increase code coverage.
  • Created separate documentation files for functions in different sections of pkgdown reference.
  • Created separate .R files for logistic regression and cox regression helper functions.
  • Fixed table tests using analyze_num_patients to generate an initial summary so there is no
    repetition when paginating.
  • Updated tests to use testthat 3rd edition and replaced applicable tests with snapshot testing.
  • Updated summarize_ancova examples to use iris dataset instead of scda data.
  • Created vignette which saves cached synthetic CDISC dataset files to the data/ folder and
    generated cached synthetic datasets.
  • Updated all examples/tests to use datasets from the data/ folder instead of scda datasets.
  • Removed all template tests from tern. These tests are in internal repo scda.test.

Miscellaneous

  • Renamed summarize_vars_in_cols to analyze_vars_in_cols to reflect the appropriate analyze logic.
  • Removed redundant summary_in_cols helper functions.
  • Exported function format_xx.
  • Replaced deprecated ggplot2 functions/arguments to fix warnings.
  • Replaced deprecated function forcats::fct_explicit_na with forcats::fct_na_value_to_level.
  • Removed deprecated wrap_text function and related files.
  • Started deprecation cycle for footnotes functions.

What's Changed

New Contributors

Full Changelog: v0.7.10...v0.8.0

v0.7.10

14 Oct 01:26
e887629
Compare
Choose a tag to compare

New Features

  • Added stratified Newcombe and stratified Wilson statistics to estimate_proportion and
    estimate_proportion_diff with relative tests.
  • Added stat_mean_pval, a new summary statistic to calculate the p-value of
    the mean.
  • Added statistic mean_se (mean with standard error) for summarize_variables
    and related functions.
  • Introduced again Rdpack for references.

Enhancements

  • Redesign of data handling in tests by removing repetitive data loads and
    library calls.
  • Added DescTools::BinomDiffCI function within tern.
  • Added new parameter to summarize_logistic to specify which pivoted value
    to use during analysis.
  • Updated s_coxph_pairwise to generate log-rank p-value using original
    log-rank test instead of Cox Proportional-Hazards Model.
  • Implemented nestcolor in all examples by adapting g_km, g_ipp,
    g_waterfall, g_step, g_lineplot, and g_forest.
  • Added parameters interaction_y and interaction_item in ANCOVA to make the
    interaction calculations available.
  • Added new parameter footnotes to add footnotes to g_km.

Migration from assertthat to checkmate

  • Implemented checkmate::assert_vector, checkmate::assert_set_equal, and
    checkmate::assert_int to check vector type, length, and values.
  • Replaced with standard assertions from checkmate the following functions:
    all_elements_in_ref, is_df_with_nlevels_factor, is_df_with_no_na_level,
    is_proportion_vector, is_quantiles_vector, is_character_or_factor,
    is_nonnegative_count, is_valid_character, assert_character_or_factor,
    assert_equal_length and has_tabletree_colnames.
  • Modified is_proportion, is_equal_length, is_df_with_no_na_level,
    is_df_with_nlevels_factor, is_variables, is_df_with_variables,
    is_df_with_factors, is_valid_factor to use assertion logic.
  • Added more verbose warnings from as_factor_keep_attributes.
  • Made assert_df_with_factors and assert_proportion_value internal functions.
  • Renamed assertthat.R and test-assertthat.R to utils_checkmate.R and
    test-utils_checkmate.R.

Documentation and NAMESPACE Polishing

  • Added stable badges for:
    • count_abnormal_by_marked (reference to abnormal_by_marked),
      count_abnormal_lab_worsen_by_baseline and h_adlb_worsen (reference to
      abnormal_by_worst_grade_worsen_from_baseline), count_abnormal_by_worst_grade
      (reference to abnormal_by_worst_grade), to_string_matrix, tidy.summary.coxph, tidy.step,
      surv_timepoint, (reference to survival_timepoint), surv_time (reference to survival_time),
      coxph_pairwise (reference to survival_coxph_pairwise),
      extract_survival_subgroups and tabulate_survival_subgroups (reference to survival_duration_subgroups),
      extract_survival_biomarkers and tabulate_survival_biomarkers (reference to
      survival_biomarkers_subgroups), control_summarize_vars, s_summary and
      a_summary (reference to summarize_variables) and kept the S3 method tree.
    • summarize_patients_exposure_in_cols, summarize_num_patients with
      s_num_patients, s_num_patients_content, summarize_num_patients.
    • count_cumulative, count_missed_doses, count_patients_events_in_cols, summarize_colvars, summarize_change, summarize_ancova,as.rtable, color_palette, add_footnotes.
    • (statistical function controls) control_coxreg, control_coxph,
      control_incidence_rate, control_lineplot_vars, control_surv_time,
      control_surv_timepoint, control_logisitic, control_step.
    • stat_mean_ci, stat_median_ci, split_cols_by_groups, explicit_na, sas_na, extract_rsp_subgroups, tabulate_rsp_subgroups, extract_rsp_biomarkers,
      tabulate_rsp_biomarkers, keep_rows, keep_content_rows, has_count_in_any_col,
      has_fraction_in_cols, has_fraction_in_any_col, has_fractions_difference,
      test_proportion_diff, pairwise, logistic_regression,
      estimate_incidence_rate, control_incidence_rate (reference to
      incidence_rate), cut_quantile_bins,
      estimate_multinomial_rsp, decorate_grob_set, extreme_format, fit_rsp_step,
      fit_survival_step, footnotes, footnotes-set,
      format_count_fraction, format_fraction_threshold, formatting_functions,
      format_fraction, combination_function (S4 method), compare_variables (S3 method),
      kaplan_meier.
  • Internal keywords added, export removed, _pkgdown.yml updated, and tern::: added for
    tests/examples/vignettes where present for the following functions:
    • (chain functions, reference to abnormal_by_marked) s_count_abnormal_by_marked,
      a_count_abnormal_by_marked.
    • (chain functions, reference to abnormal_by_worst_grade_worsen_from_baseline)
      a_count_abnormal_lab_worsen_by_baseline, s_count_abnormal_lab_worsen_by_baseline.
    • (chain functions, reference to abnormal_by_worst_grade) s_count_abnormal_by_worst_grade,
      a_count_abnormal_by_worst_grade.
    • (chain functions, reference to survival_timepoint) s_surv_timepoint, s_surv_timepoint_diff,
      a_surv_timepoint, a_surv_timepoint_diff.
    • (chain functions, reference to survival_time) s_surv_time, a_surv_time.
    • (chain functions, reference to survival_coxph_pairwise) s_coxph_pairwise, a_coxph_pairwise.
    • (chain functions, reference to survival_duration_subgroups) a_survival_subgroups.
    • (chain functions, reference to count_cumulative) s_count_cumulative, a_count_cumulative.
    • (chain functions, reference to count_missed_doses) s_count_nonmissing, s_count_missed_doses, a_count_missed_doses.
    • (chain functions, reference to count_patients_events_in_cols) s_count_patients_and_multiple_events, summarize_patients_events_in_cols.
    • (chain functions, reference to incidence_rate) s_incidence_rate, a_incidence_rate.
    • (cox regression helper) cox_regression_inter, decorate_grob_factory, draw_grob, estimate_coef.
    • summary_labels, summary_formats, s_count_patients_sum_exposure,
      a_change_from_baseline s_change_from_baseline, a_ancova, s_ancova, arrange_grobs, as_factor_keep_attributes, combine_levels, split_text_grob,
      groups_list_to_df, s_cox_multivariate, is_leaf_table, a_response_subgroups, range_noinf, has_count_in_cols,
      has_counts_difference, prop_chisq, prop_cmh, prop_schouten, prop_fisher,
      s_test_proportion_diff, a_test_proportion_diff, fct_discard, fct_explicit_na_if.

Bug Fixes

  • Fixed retrieval method of stats::ancova output due to version inconsistency.
  • Fixed tests to respect the new standard print for NA coming from rtables.
  • Fixed error in tests coming from changes in formatters::var_labels.
  • Fixed prop_diff functions to respect success responses (TRUE values).
  • Fixed error coming from comparing factors vector to characters vector.
  • Fixed empty vector exception for cut_quantile_bins.
  • Fixed exception error when empty strings are present in pivoted columns (rtables split
    functions)
  • Fixed bug in s_ancova causing an error when the first level of the arm
    factor is not the control arm.
  • Fixed bug in s_abnormal_by_worst_grade when there is one PARAM level.
  • Fixed bug in prop_diff_wald when selecting all responders, updated tests accordingly.
  • Fixed bug in h_ancova that caused an error when deselecting all covariates.

Miscellaneous

  • Added deprecated badge to g_mmrm.
  • Removed internal function calls in examples (tern:::) and added dontrun
    to internal function examples.
  • Removed warnings and messages to console occurring in examples and tests.
  • Deprecated functions color_palette and h_set_nest_theme in favor of
    nestcolor::color_palette and nestcolor::theme_nest, respectively.
  • Removed deprecated functions: color_palette, color_palette_core,
    h_set_nest_theme, s_cox_univariate.
  • Removed deprecated mmrm functions: fit_mmrm, g_mmrm_diagnostic,
    g_mmrm_lsmeans, as.rtable.mmrm, h_mmrm_fixed, h_mmrm_cov,
    h_mmrm_diagnostic, tidy.mmrm, s_mmrm_lsmeans, s_mmrm_lsmeans_single,
    summarize_lsmeans.
  • Renamed functions arm to study_arm and extract to extract_by_name.
  • Renamed rtables.R to utils_rtables.R.
  • Extracted cox_regression_inter into a separate file from cox_regression.
  • Renamed estimate_incidence_rate.R to incidence_rate.R to match the documentation grouping name.
  • Extracted control_incidence_rate into a separate file because it produces a separate documentation file.
  • Added @md and removed @order from incidence_rate.R. Modified examples accordingly.
  • Removed hyperlink from prop_schouten function documentation.
  • Exported draw_grob function.

What's Changed

Read more

v0.7.9

17 Aug 04:09
a34af52
Compare
Choose a tag to compare

Enhancements

  • Added DescTools BinomDiffCI function within tern.
  • Exported draw_grob function.
  • Added new parameter to summarize_logistic to specify which pivoted value should be removed during analysis.
  • Updated s_coxph_pairwise to generate log-rank p-value using original log-rank test instead
    of Cox Proportional-Hazards Model.
  • Added more verbose warnings from as_factor_keep_attributes for better test_examples() readability.
  • Implemented nestcolor in all examples, with slight refactoring to g_km, g_ipp,
    g_waterfall, g_step, g_lineplot, and g_forest.
  • Added stat_mean_pval function to calculate the p-value of the mean as a new summary statistic.
  • New statistic mean_se (mean with standard error) for summarize_variables()
    and related functions.

Migration from assertthat to checkmate

  • Substituted all assertthat calls with checkmate.
  • Implemented checkmate::assert_vector(), checkmate::assert_set_equal(), and
    checkmate::assert_int() to validate vector type, length, and input.
  • Made assert_df_with_factors and assert_proportion_value internal functions.
  • Removed assertion functions all_elements_in_ref, is_df_with_nlevels_factor,
    is_df_with_no_na_level, is_proportion, is_proportion_vector, is_quantiles_vector,
    is_valid_character,
    assert_character_or_factor, assert_equal_length and has_tabletree_colnames.
  • Renamed is_proportion to assert_proportion_value.
  • Renamed is_equal_length to assert_equal_length.
  • Refactored assert_df_with_variables to replace is_df_with_no_na_level.
  • Refactored assert_df_with_factors to replace is_df_with_nlevels_factor.
  • Replaced usage of is_quantiles_vector and all_elements_in_ref with checkmate::subset().
  • Replaced is_character_or_factor with checkmate::assert_multi_class().
  • Replaced is_nonnegative_count with checkmate::assert_count().
  • Replaced is_variables with assert_list_of_variables.
  • Replaced is_df_with_variables with assert_df_with_variables.
  • Replaced is_df_with_factors with assert_df_with_factors.
  • Replaced is_valid_factor with assert_valid_factor.
  • Renamed assertthat.R to utils_checkmate.R.
  • Renamed test-assertthat.R to test-utils_checkmate.R.

Bug Fixes

  • Identified bug in prop_diff functions. Coding of responses have been corrected (TRUE is a success).
  • Fixed error coming from comparing factors vector to characters vector.
  • Fixed empty vector test for cut_quantile_bins.
  • Fixed bug related to error flag for empty strings coming from rtables split
    functions. Creation of replace_emptys_with_na to replace empty strings with
    custom strings across data.frame (this can be merged with df_explicit_na).
  • Fixed warnings occurring in example tests.
  • Fixed internal function examples errors by removing tern::: prefix and added dontrun to internal function examples.
  • Fixed bug in s_ancova causing an error when the first level of the arm factor is not the control arm.

Documentation and NAMESPACE Polishing

  • Added stable badges for:
    • count_abnormal_by_marked (reference to abnormal_by_marked),
      count_abnormal_lab_worsen_by_baseline and h_adlb_worsen (reference to
      abnormal_by_worst_grade_worsen_from_baseline), count_abnormal_by_worst_grade
      (reference to abnormal_by_worst_grade), to_string_matrix, tidy.summary.coxph, tidy.step,
      surv_timepoint, (reference to survival_timepoint), surv_time (reference to survival_time),
      coxph_pairwise (reference to survival_coxph_pairwise),
      extract_survival_subgroups and tabulate_survival_subgroups (reference to survival_duration_subgroups),
      extract_survival_biomarkers and tabulate_survival_biomarkers (reference to
      survival_biomarkers_subgroups), control_summarize_vars, s_summary and
      a_summary (reference to summarize_variables) and kept the S3 method tree.
    • summarize_patients_exposure_in_cols, summarize_num_patients with
      s_num_patients, s_num_patients_content, summarize_num_patients.
    • count_cumulative, count_missed_doses, count_patients_events_in_cols, summarize_colvars, summarize_change, summarize_ancova,as.rtable, color_palette, add_footnotes.
    • (statistical function controls) control_coxreg, control_coxph,
      control_incidence_rate, control_lineplot_vars, control_surv_time,
      control_surv_timepoint, control_logisitic, control_step.
    • stat_mean_ci, stat_median_ci, split_cols_by_groups, explicit_na, sas_na, extract_rsp_subgroups, tabulate_rsp_subgroups, extract_rsp_biomarkers,
      tabulate_rsp_biomarkers, keep_rows, keep_content_rows, has_count_in_any_col,
      has_fraction_in_cols, has_fraction_in_any_col, has_fractions_difference,
      test_proportion_diff, pairwise, logistic_regression,
      estimate_incidence_rate, control_incidence_rate (reference to
      incidence_rate), cut_quantile_bins, d_pkparam,
      estimate_multinomial_rsp, decorate_grob_set, extreme_format, fit_rsp_step,
      fit_survival_step, footnotes, footnotes-set,
      format_count_fraction, format_fraction_threshold, formatting_functions,
      format_fraction, combination_function (S4 method), compare_variables (S3 method),
      h_stack_by_baskets, h_pkparam_sort, h_adsl_adlb_merge_using_worst_flag, kaplan_meier.
  • Internal keywords added, export removed, _pkgdown.yml updated, and tern::: added for
    tests/examples/vignettes where present for the following functions:
    • (chain functions, reference to abnormal_by_marked) s_count_abnormal_by_marked,
      a_count_abnormal_by_marked.
    • (chain functions, reference to abnormal_by_worst_grade_worsen_from_baseline)
      a_count_abnormal_lab_worsen_by_baseline, h_worsen_counter (same file),
      s_count_abnormal_lab_worsen_by_baseline.
    • (chain functions, reference to abnormal_by_worst_grade) s_count_abnormal_by_worst_grade,
      a_count_abnormal_by_worst_grade.
    • (chain functions, reference to survival_timepoint) s_surv_timepoint, s_surv_timepoint_diff,
      a_surv_timepoint, a_surv_timepoint_diff.
    • (chain functions, reference to survival_time) s_surv_time, a_surv_time.
    • (chain functions, reference to survival_coxph_pairwise) s_coxph_pairwise, a_coxph_pairwise.
    • (chain functions, reference to survival_duration_subgroups) a_survival_subgroups.
    • (chain functions, reference to count_cumulative) h_count_cumulative,
      d_count_cumulative, s_count_cumulative, a_count_cumulative.
    • (chain functions, reference to count_missed_doses) s_count_nonmissing, d_count_missed_doses, s_count_missed_doses, a_count_missed_doses.
    • (chain functions, reference to count_patients_events_in_cols) s_count_patients_and_multiple_events, summarize_patients_events_in_cols.
    • (chain functions, reference to incidence_rate) h_incidence_rate_normal,
      h_incidence_rate_normal_log, h_incidence_rate_exact, h_incidence_rate_byar,
      h_incidence_rate, s_incidence_rate, a_incidence_rate.
    • (cox regression helper) cox_regression_inter, decorate_grob_factory, draw_grob, estimate_coef.
    • (reference to h_survival_duration_subgroups) h_survtime_df, h_survtime_subgroups_df, h_coxph_df, h_coxph_subgroups_df
    • (reference to h_survival_biomarkers_subgroups) h_surv_to_coxreg_variables,
      h_coxreg_mult_cont_df, h_tab_surv_one_biomarker.
    • (reference to h_step) h_step_window, h_step_trt_effect, h_step_survival_formula,
      h_step_survival_est, h_step_rsp_formula, h_step_rsp_est.
    • (reference to h_response_biomarkers_subgroups) h_rsp_to_logistic_variables,
      h_logistic_mult_cont_df, h_tab_rsp_one_biomarker.
    • summary_labels, summary_formats, s_count_patients_sum_exposure,
      a_change_from_baseline s_change_from_baseline, a_ancova, s_ancova, h_ancova,
      arrange_grobs, as_factor_keep_attributes, combine_levels, split_text_grob,
      groups_list_to_df, s_cox_multivariate, h_row_counts, h_row_fractions, h_col_counts, is_leaf_table,
      h_content_first_row, a_response_subgroups, range_noinf, has_count_in_cols,
      has_counts_difference, prop_chisq, prop_cmh, prop_schouten, prop_fisher,
      s_test_proportion_diff, a_test_proportion_diff,h_split_param,
      fct_discard, fct_explicit_na_if.
  • Added deprecated badge to g_mmrm.
  • Removed tern::: prefix from internal function uses in tests.
  • Reverted fct_collapse_only, month2day, and day2month to export.
  • Reverted all d_ and h_ functions to export, allowing users to utilize their flexibility.
  • Renamed rtables.R as file name is confusing due to the package dependence.
  • Renamed files to reflect main documented function and fixed R files starting with the word test
    not complying with the standard.
  • Extracted cox_regression_inter into a separate file from cox_regression.
  • Renamed estimate_incidence_rate.R to incidence_rate.R to match the documentation grouping name.
  • Extracted control_incidence_rate into a separate file as it was exported and documented separately.
  • Added @md and removed @order from incidence_rate.R. Modified examples accordingly.
  • Removed hyperlink from prop_schouten function documentation.

Miscellaneous

  • Deprecated the color_palette function with nestcolor::color_palette and removed color_palette_core.
  • Deprecated h_set_nest_theme() in favor of nestcolor::theme_nest().
  • Removed deprecated mmrm functions: fit_mmrm, g_mmrm_diagnostic, g_mmrm_lsmeans, as.rtable.mmrm, h_mmrm_fixed,
    h_mmrm_cov, h_mmrm_diagnostic, tidy.mmrm, s_mmrm_lsmeans, s_mmrm_lsmeans_single, summarize_lsmeans.
  • Renamed functions arm to study_arm and extract to extract_by_name.

v0.7.8

09 Jun 14:30
70e4c11
Compare
Choose a tag to compare

Enhancements

  • Enhanced g_lineplot with additional table to automatically scale the table height and return a ggplot object.
  • Enhanced g_ipp with additional caption argument and adjust the position.
  • Enhanced prop_diff tern function and related functions to be able to apply a continuity correction in the Newcombe method.
  • Enhanced summarize_numeric_in_columns and summarize_variables to allow factor/character summary and to be able to summarize the number of BLQs in AVALC from ADPC dataset.
  • Updated order of summarize variables stats in manual for order consistency.
  • Added a sum option to summarize_variables.
  • Use consistent color palette for plotting (stream by default).
  • Enhanced h_pkparam_sort function with additional argument key_var to allow data with different column names.

Miscellaneous

  • Updated test-table_aet02.R variant 12.
  • Changed the scda data version to '2022-02-28'.
  • Added a template to the pkgdown site.
  • Removed package dependencies of grDevices, stringr, and viridisLite.
  • Renaming summarize_numeric_in_columns to summarize_variables_in_columns.
  • Renaming summarize_vars_numeric_in_cols to summarize_vars_in_cols.
  • Fixed a bug where points on the g_lineplot plot were not connected in the case of missing values.
  • Updated the package authors.

v0.7.6

29 Jan 18:23
Compare
Choose a tag to compare

New features

  • Added h_map_for_count_abnormal so that the map used in trim_levels_to_map split function can be created by calling this helper function. Currently it supports two methods: one with all observed mapping, one with at least low limit above zero and at least one non missing high limit.
  • Added s_summary_numeric_in_cols and summarize_vars_numeric_in_cols functions to generate summary statistics in columns, mainly used for PK datasets.
  • Added five statistics to s_summary.numeric to use in s_summary_numeric_in_cols.

Enhancements

  • Enhanced functions tabulate_survival_subgroups and tabulate_rsp_subgroups (Survival Duration and Best Overall Response analyses) to calculate N-s based on the records considered to create the model.
  • Enhanced the function estimate_proportion and related functions to be able to apply a continuity correction in the Wilson method.
  • Refactored count_abnormal_by_marked and related statistics and formatting functions to use a more efficient layout with .spl_context argument used for determining denominators and with trim_levels_to_map split function under split_rows_by to show only the desired levels in the table. This is a breaking change.
  • Refactored count_abnormal_by_worst_grade and related statistics and formatting functions to use a more efficient layout with .spl_context argument used for determining denominators and with trim_levels_to_map split function under split_rows_by to show only the desired levels in the table. This is a breaking change.
  • Refactored count_abnormal function and related statistics and formatting functions to use a more efficient layout with trim_levels_to_map split function under split_rows_by to show only the desired levels in the table. Also updated abnormal argument to be able to consider more than one level for each direction. This is a breaking change.
  • Enhanced the function estimate_incidence_rate and related functions to consider the week as time unit for data input.

Bug fixes

  • Fixed bug in assertthat functions that output wrong data frame names and limited length of failure message outputs.

Miscellaneous

  • Removed dependency on utils.nest by using the checkmate and purrr packages for validation and moved get_free_cores and skip_if_too_deep functions from utils.nest into tern.

v0.7.5

13 Oct 00:02
cd9c175
Compare
Choose a tag to compare

New features

  • Added functions to estimate continuous biomarker effects across multiple subgroups for survival and binary response endpoints, which can be used to produce corresponding forest plots, see survival_biomarkers_subgroups and response_biomarkers_subgroups.
  • Added g_lineplot plot function, including new h_format_row helper function and control_lineplot_vars function. Removed g_summary_by.
  • Added new safety helper function h_stack_by_baskets to stack events in SMQ and/or CQ basket flag in ADAE data set.

Enhancements

  • Added a couple of new statistics to s_summary.numeric. Added names attribute to each element of the final list returned by the s_summary.numeric function. Added summary_formats and summary_labels helper functions.
  • Added option to also convert logical variables to factor variables in df_explicit_na.
  • Refactored h_append_grade_groups to improve its flexibility, robustness and clearness as well as to make sure the result is ordered according to the order of grade_groups. Also, added remove_single argument which controls whether the elements of one-element grade groups will be kept in the output or removed.
  • Added var_labels and show_labels arguments to count_occurrences and count_patients_with_flags to allow for creation of a title row.
  • Added na_level argument to count_abnormal_by_baseline.

Bug Fixes

  • Fixed prop_diff_cmh to handle edge case of no FALSE (or TRUE) responses.
  • Enhanced g_mmrm_diagnostic to improve error handling when data is not amenable to the Locally Weighted Scatterplot Smoothing.
  • Several fixes in g_km:
    • Plot can now display any combination of the annotation tables for number of patients at risk, median survival time, and CoxPH summary.
    • Function will return a warning instead of an error if the arm variable includes only one level and annot_coxph = TRUE.
    • Lines in the plot now start correctly at time 0 and probability 1.
    • The equals sign can now be used in category labels.

Miscellaneous

  • Fixed day2month and month2day to work with NA data.
  • Parametrized stat_mean_ci and stat_median_ci so that they may return different outputs.
  • Added functionality in h_row_counts to handle analysis rows with NULL cells.
  • Updated LICENCE and README with new package references.
  • Added error_on_lint: TRUE to .lintr.

v0.7.4

19 Aug 22:16
Compare
Choose a tag to compare
  • Added new safety layout functions:
    • count_abnormal_by_marked tabulates marked laboratory abnormalities.
    • summarize_patients_exposure_in_cols tabulates patient counts and sum of exposure across all patients.
  • Enhanced mmrm related functions for fitting models without arm variable.
  • Updated cox_regression to work without covariates. Also in case of interaction model summary, p-values for main effect coefficients are no longer displayed.
  • Descriptive statistics returned by summarize_vars now include quantiles. In addition, summarize_vars now accepts the the control function control_summarize_vars to specify details about confidence level for mean and median and quantile details. The control argument replaces conf_level.
  • Added var_labels and show_labels arguments to count_occurrences_by_grade.
  • Changed indent argument in append_varlabels to accept non-negative integer to represent the indent space defined by user. Previous calls with Boolean indent will do an integer conversion and produce a warning.
  • Corrected tabulate_survival_subgroups and related survival forest plot functions to use total number of events, instead of observations, as default for scaling the symbol sizes in the plot. (The user might still use total number of observations manually if they wish to do so.)
  • Helper function h_adsl_adlb_merge_using_worst_flag will now correctly impute BTOXGR for missing visits.
  • Deleted count_abnormal_by_worst_grade_by_baseline and its related statistic and analysis functions as lab abnormality tables can be achieved using a simpler design.
  • Switched data in examples to use scda instead of random.cdisc.data package.

v0.7.3

19 Aug 22:15
Compare
Choose a tag to compare
  • Added Subgroup Treatment Effect Pattern (STEP) model fitting functions fit_rsp_step and fit_survival_step, the corresponding tidy method tidy.step as well as the graph function g_step.
  • Added new layout function compare_vars which compares variables of different types between columns and produces a p-value for the comparison to the reference column. It is built on top of the summarize_vars functionality.
  • Added utility functions:
    • cut_quantile_bins cuts a numeric vector into quantile bins.
    • fct_collapse_only collapses levels of a factor and only keeps those in the order provided.
    • fct_explicit_na_if inserts explicit missings in a factor based on a condition.
    • range_noinf is a kind of a wrapper function of base::range. It returns c(NA, NA) instead of c(-Inf, Inf) for zero-length data.
  • Cox regression via fit_coxreg_univar and fit_coxreg_multivar is now also possible without treatment arm. In the univariate case this means that separate univariate models for the provided covariates are fitted and the corresponding effect estimates can later be tabulated.
  • Added fraction in result returned by s_count_occurrences. It contains a list of numerators and denominators with one element per occurrence.
  • Updated sum_num_patients and count_occurrences for the result unique and count_fraction to return (0, 0) when input is empty.
  • Added a new argument groups_lists to extract_survival_subgroups, extract_rsp_subgroups and associated helper functions which allows to group factor levels of subgroup variables into manually defined groups, enhancing the flexibility of the resulting forest graphs.
  • Forest graph function g_forest now extracts default arguments from attributes of the input table produced by tabulate_rsp_subgroups and tabulate_survival_subgroups so that the user does not have to do this manually anymore.
  • In g_km:
    • Remove arm variable name from arm labels in plot legend and annotation tables.
    • Show symbol used to mark censored cases and match order of arm variable factor levels in the legend.
    • Display hazard ratio and its confidence interval to two decimal places.
    • Updated default position of hazard ratio table to stay on the left bottom corner but above x-axis.
    • Use arm value as strata name in when treatment arm variable only has one level.
  • Updated s_surv_time function to use a newly created function range_noinf instead of base::range.
  • New argument no_fillin_visits added to h_adsl_adlb_merge_using_worst_flag to specify the visits that are excluded from post-baseline worst toxicity grade output. Improved h_adsl_adlb_merge_using_worst_flag to include variables shared between adsl and adlb, along with PARAM, PARAMCD, ATOXGR, BTOXGR and optionally AVISIT, AVISITN when by_visit = TRUE. Previously, output only contains USUBJID, ARMCD, PARAMCD, ATOXGR, and BTOXGR.
  • Fix bug in s_surv_timepoint for cases when there are zero patients at risk.
  • Modified stat_median_ci function so that when empty var with empty name is passed, no row names contain missing values error would show.
  • Deprecated s_cox_univariate function, use fit_coxreg_univar function instead.
  • Updated default formats of hr and hr_ci in a_coxph_pairwise and median in s_surv_time to align with STREAM.
  • Updated the pre-processing code in the files test-table_ttet01.R and test-table_dort01.R to make sure the analysis variable EVNT1 has both levels of the factor defined.
  • Improved error message when number of levels in a factor variable in a data frame is not as expected.