get_ref_info() to accept ref_path = NULL (#359).junco_get_stats() to inherit any default stats from tern that are not explicitly defined in junco.get_ref_info() so that is works in the presence of "overall" column (#332)tt_to_tlgrtf() lost titles in certain cases (#373)def_colwidths() when a column label is too long (#281)"unique_fraction" as a new statistic supported by s_freq_j() and
a_freq_j() (#519).lowercase_words argument to string_to_title() to keep specified words
lowercase (#524)..cell_footnotes and .row_footnotes arguments to format_stats() (#470).s_proportion_diff_j() which was a wrapper around tern::s_proportion_diff().
The label and conf_level parameters moved to a_proportion_diff_j() (#442, #467).s_rel_risk_val_j() and s_rel_risk_levii_j() to
s_risk_diff_val_j() and s_risk_diff_levii_j() to correctly reflect that
they compute risk difference (p1 - p2), not relative risk (p1 / p2) (#442).h_get_cur_trt_grp() (#295).h_get_trtvar_refpath() with h_get_cur_trt_grp() (#295).get_ref_info() for matching column split paths (#295).factor_by_order() (#425).in_ref_col() to in_column() and renamed its ref_path argument
to col_path.in_ref_col() to accept ref_path = NULL (#404).cur_col_split_path() and in_column() to
support custom analysis functions that depend on the current column split
context (#404).label argument in c_summary_subset_label().a_summary_subset().prepend_label_cell(); Only RowsVerticalSection is now supported.filter_df_prior_afun(), a_summary_diff_mvars(), a_summary_diff_mvars_label().a_coxph_hr for tern:::a_coxph_pairwise() and s_coxph_hr for tern:::s_coxph_pairwise() #158rbmi test to make tests shorter (#323)test-tt_to_tblfile (#323)h_ancova for the tern onea_eair100_j and introduce scaling factor num_p_year (default = 100) (#361)a_freq_resp_var_j (#236)dplyr from junco and replaced by base R #201assertthat by checkmate for consistency #201stringi from dependencies #201rbmi_analyse(), make_rbmi_cluster(), par_lapply() for rbmi equivalent functions #367a_kaplan_meier() for tern::a_surv_time()range_with_cens_info from "Min, max" (junco) to "Min - Max (with censoring)" and the argument from lsmean_diffci to lsmean_diff_with_cis_coxph_hr() for tern:::a_coxph_pairwise()a_freq_j() when label_map option is used in a rowsplit with no data on a character analysis var #386roxygen2 8.0.0a_eair100_j and introduce scaling factor num_p_year (default = 100) (#361)jjcsformat_count_denom_fraction and jjcsformat_fraction_count_denom
and introduce functions jjcsformat_count_denom_fraction_legacy and jjcsformat_fraction_count_denom_legacy for backward compatibility reasons (#450)insightsengineering urls to pharmaversepostfun_eq5d into stats_in_cols_setup.var in s_freq_j (#453).id argument in a_freq_j() and s_freq_j() (#424).jjcsformat_percentage() for formatting percentage values (#519).a_combo_prop_diff_pval_mf() for proportions,
risk differences, and risk difference tests with adaptive Mantel-Fleiss-based
method selection (#517).s_test_proportion_diff_mf() and a_test_proportion_diff_mf() adaptive
test of stratified response-proportion differences using the Mantel–Fleiss
criterion (#457).s_proportion_diff_mf() and a_proportion_diff_mf() adaptive
estimation of stratified response-proportion differences using the
Mantel–Fleiss criterion (#456).a_cond_proportion_j() which implements conditional method selection between Wald and Clopper-Pearson confidence intervals based on the number of responses and the denominator (and the method selection can either be done on cell level or on row level).a_sum_ratio_j() analysis function for computing sum, unique-row sum, and their ratios against a denominator column.strict_match() for uniquely matching a value in the odd or even positions of a character vector.categorize_pval() for assigning p-values to validated, user-defined categories.pool_rubin_scalar() and pool_z_stat() for pooling scalar estimates and z statistics across imputations.resp_multiple_imputation() to impute missing binary responses across scenarios and pool CMH risk-difference and p-value results.label_map in a_freq_j (#235)tern methods for difference in proportions in a_freq_j and a_freq_resp_var_j : cmh_sato, cmh_mn, uncond_exact_diff (#389)a_summary_j_with_exclude() to allow tern::a_summary() analyses to be skipped for selected row split levels.a_summarize_mmrm_with_exclude() to allow MMRM summaries to be skipped for selected row split levels.rightside() to extract the right-hand side of a formula as a scalar character value.a_three_tier() as extension to a_two_tier().format_sigfig_j() as alternative to tern::format_sigfig(). (#436)make_multicomp_splfun(), grouped_cols_w_diffs(), grouped_cols_w_subgrps(), shift_tbl_col_struct(), and some_v_all_col_struct().fmt_spec_single_d, fmt_spec_df_d, fmt_spec_var_d. (#474)get_fmt_details and compare_fmt_specs for reviewing format specification objects.s_kaplan_meier() range censoring indicator handling to no longer produce NA values in the output when either all subjects are censored or none are censored.a_freq_resp_var_j() with a_freq_j() by adding .formats and na_str parameters to allow user customization of output formatting and NA string representation (#67).leftside(), postfun_eq5d ac_blank_line and tt_to_tblfilett_to_flextable_j() to have correct left-indentation in header col 1 (#171) and footer first line starting with newline (#171)a_freq_j(), a_freq_resp_var_j() and a_eair100_j() (#195)insert_keepNext_vertical_pagination() (#218)s_summarize_desc_j() when applied to almost constant data due to behavior from t.test.default() (#257)tt_to_tlgrtf() now is passing vectorized colwidths when exporting 'allparts' to match the colwidths of the individual parts (#225)c_summary_subset_label(): removed .spl_context argument and renamed subset_expr to filter_expr.a_summary_j() to a_summary_subset() and updated its purpose, implementation, and arguments.junco_utils_default_stats_formats_labels.r file.s_diff_mean_ci() to s_diff_means(), and added new statistics to s_diff_means().safe_t_test() from a_summarize_aval_chg_diff.R to a new file safe_t_test.R,add_blank_line_rcells() from s_functions.R to blank_line.R.n for s_ancova_j into n_fit, to differentiate between these two statistics for combined function s_summarize_ancova_j() (#117)junco_default_labels_startdefault_stats_formats_labelstt_to_flextable_j() and export_as_docx_j()export_TLG_as_docx(), which now calls export_as_docx_j() and export_graph_as_docx() (#173)export_as_docx_j() and export_graph_as_docx() still exist but are now internal, i.e. not exportedcran = TRUEtheme_docx_default_j, tt_to_flextable_j and export_TLG_as_docxa_diff_means(), which is based on the existing s_diff_means().a_summary_diff_mvars(), a_summary_j(), c_summary_subset_label(), filter_df_prior_afun(),
prepend_label_cell(), s_diff_mean_ci(), s_summary_diff(), safe_t_test() (#304).a_summarize_ancova_j in a layout with a combined column facet (#117) + slight change in return value for s_ancova_j(), now we have n_fit instead of n returnedtt_to_tlgrtf() and export_as_docx_j()export_TLG_as_docx() and tt_to_flextable_j() (#213)mult_adj_emmeans in fit_mmrm_j() to enable (single-step or step-down) Dunnett multiplicity adjustment for LS means contrasts (p-values and confidence intervals) for more than one experimental arm within visits.vars argument of fit_mmrm_j() to enable fitting an overall MMRM with subgroup interaction terms.lsmeans_wide_cfun, lsmeans_wide_first_split_fun_fct, lsmeans_wide_second_split_fun_fctlifecycle to suggestscountsource in h_a_freq_dataprep altdf_subset (#200)tt_to_tlgrtf(), when exporting an empty listing do not lose Title and Footerstt_to_tlgrtf() argument label_width_ins which was not applying the change in the row label column width (#166).a_two_tier() analysis functiona_maxlev() to be able to calculate count and percentage of the maximum level of an ordered factor per subjectbrackets_to_rtf()rbmi_pool() #22a_freq_j() to process val = NULL from levels specified in label_map, as well as the modified version a_freq_j_with_exclude() that allows to exclude the analysis from specified row splits. #95a_cmhrms_j() to support p-value from CMH row mean score test, as well as the modified version a_cmhrms_j_with_exclude() that allows to exclude the analysis from specified row splits. #97summarize_lsmeans_wide() layout.do_exclude_split() to facilitate the exclusion of specified row splits from analysis functions..alt_df_full when layout has risk difference column and a row-split (h_create_alt_df) #120.alignments argument in tt_to_tlgrtf()s_test_proportion_diff() and corresponding helper functions, as they are now available as needed in the tern package.cmh_sato and cmh_mn (Cochran-Mantel-Haenszel stratified proportion difference estimation with Sato variance and Miettinen Nurminen method, respectively) method options to the s_proportion_diff_j() function.All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.