cards 0.7.0.9005
New Features and Functions
- Updated
ard_stack_hierarchical()so that thedenominatordataset only contains theidandbyvariables. (#482)
Bug Fixes
- Fixed bug in
sort_ard_hierarchical()causing an error when sorting hierarchical ARDs with more than 2byvariables. (#516)
cards 0.7.0
CRAN release: 2025-08-27
New Features and Functions
Updated
sort_ard_hierarchical()to allow for different sorting methods at each hierarchy variable level. (#487)Updated
sort_ard_hierarchical()andfilter_ard_hierarchical()to always keep attribute and total N rows at the bottom of the ARD.Added argument
vartofilter_ard_hierarchical()to allow filtering by any hierarchy variable. (#467)Added flexibility to filter by
byvariable level-specific values when usingfilter_ard_hierarchical()to allow for filtering of hierarchical ARDs by difference in two rates. (#438)The
ard_strata()function has been updated to include the strata columns in the nested data frames. (#461)Similar to
ard_stack_hierarchical(),ard_stack()contains anargsattribute to retain information about input arguments.Added an article illustrating how to summarize long data structures. (#356)
Added
ard_stack(.by_stat)andard_stack_hierarchical(by_stat)arguments that, whenTRUE(the default), includes a univariate ARD tabulation of thebyvariable in the returned ARD. (#335)shuffle_ard()passes down theargsattribute of the inputcardobject when present. (#484, @dragosmg)shuffle_ard()fills overall or group statistics with"Overall <column_name>"or"Any <column_name>". (#337, @dragosmg)shuffle_ard()messages if"Overall <column_names>"is accidentally present in the data and creates a unique label. (#465, @dragosmg)Add
ADLBdata set. (#450)
Lifecycle Changes
- The following functions have been renamed. The old functions still work in the package, and will be soft deprecated in the next release. (#470)
-
shuffleand.shufflearguments (forard_stack_hierarchical()andard_stack()) are deprecated and users encouraged to callshuffle_ard()directly. (#475, @dragosmg)
cards 0.6.1
CRAN release: 2025-07-03
New Features and Functions
- Added new function
ard_identity()for saving pre-calculated statistics in an ARD format. (#379)
Lifecycle Changes
-
Updating any
fmt_fnreferences tofmt_funfor consistency.Any function with an argument
cards::foo(fmt_fn)has been updated tocards::foo(fmt_fun). The old syntax will continue to function, but with a deprecation warning to users.The following function names have been updated:
alias_as_fmt_fun(),apply_fmt_fun(), andupdate_ard_fmt_fun(). The former function names are still exported from the package, and users will see a deprecation note when they are used.Importantly, the ARD column named
"fmt_fn"has been updated to"fmt_fun". This change cannot be formally deprecated. For users who were accessing the ARD object directly to modify this column instead of using functions likeupdate_ard_fmt_fun(), this will be a breaking change.
Bug Fixes
Fix bug in
sort_ard_hierarchical()when hierarchical ARD hasoverall=TRUE. (#431)Fix bug in
ard_stack_hierarchical()whenidvalues are present in multiple levels of thebyvariables. (#442)Fix bug in
shuffle_ard()where error is thrown if input contains hierarchical results. (#447)
cards 0.6.0
CRAN release: 2025-04-11
New Features and Functions
Added functions
sort_ard_hierarchical()andfilter_ard_hierarchical()to sort & filter ARDs created usingard_stack_hierarchical()andard_stack_hierarchical_count(). (#301)Updated
ard_stack_hierarchical()andard_stack_hierarchical_count()to automatically sort results alphanumerically. (#423)Added new function
unlist_ard_columns(). (#391)-
Updated function
rename_ard_columns(). (#380)The function no longer coerces values to character.
The
fillargument has been added to specify a value to fill in the new column when there are no levels associated with the variables (e.g. continuous summaries).The
unlistargument has been deprecated in favor of using the newunlist_ard_columns()function.The function no longer accepts generic data frames: inputs must be a data frame of class
card.
Added function
ard_formals()to assist in adding a function’s formals, that is, the arguments with their default values, along with user-passed arguments into an ARD structure.
Bug Fixes
- Fixed sorting order of logical variables in
nest_for_ard(). (#411)
Lifecycle Changes
- The
shuffle_ard()function no longer outputs a'label'column, and instead retains the original'variable'level from the cards object. It also no longer trims rows with non-numeric stats values. (#416)
cards 0.5.0
CRAN release: 2025-02-17
New Features and Functions
Added functions
rename_ard_groups_shift()andrename_ard_groups_reverse()for renaming the grouping variables in the ARD. (#344)Added an option to specify the default rounding in the package:
cards.round_type. See?cards.optionsfor details. (#384)Added the
print_ard_conditions(condition_type)argument, which allows users to select to return conditions as messages (the default), or have warnings returned as warnings and errors as errors. (#386)Added the
all_ard_group_n(types)argument to allow separate selection ofgroupXandgroupX_levelcolumns.Added the
tidy_ard_column_order(group_order)argument that allows users to specify whether the grouping variables are listed in ascending order (the default) or descending order. The output ofard_strata()now callstidy_ard_column_order(group_order="descending").
Lifecycle Updates
- Function
label_cards()has been renamed tolabel_round(), which more clearly communicates that is returns a rounding function.
cards 0.4.0
CRAN release: 2024-11-27
New Features and Functions
Added functions
as_cards_fn(),is_cards_fn(), andget_cards_fn_stat_names(). These functions assist is creating functions with attributes enumerating the expected results.Updated
ard_continuous()andard_complex()to return full ARDs when functions passed are created withas_cards_fn(): instead of a single row output, we get a long ARD with rows for each of the expected statistic names. (#316)Added function
ard_pairwise()to ease the calculations of pairwise analyses. (#359)
Other Updates
Improved messaging in
print_ard_conditions()when the calling function is namespaced. (#348)Updated print method for
'card'objects so extraneous columns are never printed by default.
Lifecycle Changes
- No longer exporting functions
check_pkg_installed(),is_pkg_installed(),get_min_version_required(),get_pkg_dependencies(). These functions are now internal-only. (#330)
Bug Fixes
- The
tidy_ard_column_order()now correctly orders grouping columns when there are 10+ groups. This also corrects an issue in the hierarchical functions where the ordering of the variables matters. (#352)
cards 0.3.0
CRAN release: 2024-10-03
New Features & Updates
Added functions
ard_stack_hierarchical()andard_stack_hierarchical_count()that ease the creation of ARDs for multiple nested or hierarchical structures. (#314)Added functions
update_ard_fmt_fn()andupdate_ard_stat_label()to update an ARD’s formatting function and statistic label, respectively. (#253)Added
rename_ard_columns(unlist)argument, which unlists specified columns in the ARD data frame. (#313)Added
ard_strata()function to ease the task of calculating ARDs stratified by one or more other categorical variables. (#273)Added functions
mock_continuous(),mock_categorical(),mock_dichotomous(),mock_missing(),mock_attributes()to build ARDs in the absence of a data frame. Where applicable, the formatting functions are set to return'xx'or'xx.x'to aid in the construction of mock tables or table shells. (#256)Added functions for printing results from
eval_capture_conditions(). Captured conditions can be printed as either errors or messages withcaptured_condition_as_error()andcaptured_condition_as_message(), respectively. (#282)
Other Updates
The
ard_hierarchical_count()function has been updated to match the behavior ofard_hierarchical()and results are now only returned for the last column listed in thevariablesarguments, rather than recursively counting all variables.Add columns
'fmt_fn','warning', and'errors'toard_attributes()output. (#327)Add checks for factors with no levels, or any levels that are
NAintoard_*functions (#255)Any rows with
NAorNaNvalues in the.bycolumns specified inard_stack()are now removed from all calculations. (#320)
cards 0.2.2
CRAN release: 2024-09-02
New Features & Updates
Converted
ard_total_n()to an S3 generic and added methodard_total_n.data.frame().Added the
bind_ard(.quiet)argument to suppress messaging. (#299)Improved ability of
shuffle_ard()to populate missing group values where possible. (#306)Added
apply_fmt_fn(replace)argument. Usereplace=FALSEto retain any previously formatted statistics in thestat_fmtcolumn. (#285)Added
bind_ard(.distinct)argument, which can remove non-distinct rows from the ARD across grouping variables, primary variables, context, statistic name and value. (#286)
Bug Fixes
Fix in
print_ard_conditions()when the variables were factors, which did not render properly incli::cli_format().Bug fix in
print_ard_conditions()and we can now print condition messages that contain curly brace pairs. (#309)
cards 0.2.1
CRAN release: 2024-08-17
Update in
ard_categorical()to usebase::order()instead ofdplyr::arrange(), so the ordering of variables match the results frombase::table()in some edge cases where sorted order was inconsistent.Update in
ard_categorical()to runbase::table()output checks against coerced character columns. Previously, we relied on R to perform checks on the type it decided to check against (e.g. when it coerces to a common type). While the initial strategy worked in cases of Base R classes, there were some bespoke classes, such as times from {hms}, where Base R does not coerce as we expected.Adding selectors
all_group_n()andall_missing_columns(). (#272, #274)Added new function
add_calculated_row()for adding a new row of calculated statistic(s) that are a function of the other statistics in the ARD. (#275)
cards 0.2.0
CRAN release: 2024-07-20
New Features & Updates
Converting
ard_*()functions and other helpers to S3 generics to make them extendable. (#227)Added helper
rename_ard_columns()for renaming/coalescing group/variable columns. (#213).Added new function
ard_total_n()for calculating the total N in a data frame. (#236)Added the
nest_for_ard(include_data)argument to either include or exclude the subsetted data frames in a list-column in the returned tibble.Added
check_ard_structure(column_order, method)arguments to the function to check for column ordering and whether result contains astat_name='method'row.Added the optional
ard_hierarchical(id)argument. When provided we check for duplicates across the column(s) supplied here. If duplicates are found, the user is warned that the percentages and denominators are not correct. (#214)Improved messaging in
check_pkg_installed()that incorporates the calling function name in the case of an error. (#205)Updated
is_pkg_installed()andcheck_pkg_installed()to allow checks for more than package at a time. Theget_min_version_required()function has also been updated to return a tibble instead of a list with attributes. (#201)Styling from the {cli} package are now removed from errors and warnings when they are captured with
eval_capture_conditions(). Styling is removed withcli::ansi_strip(). (#129)
Bug Fixes
Bug fix in
ard_stack()when calls to functions were namespaced. (#242)The
print_ard_conditions()function has been updated to no longer error out if the ARD object does not have"error"or"warning"columns. (#240)Bug fix in
shuffle_ard()where factors were coerced to integers instead of their labels. (#232)
Lifecycle Changes
Corrected order that
ard_categorical(strata) columns would appear in the ARD results. Previously, they appeared in the order they appeared in the original data, and now they are sorted properly. (#221)The API for
ard_continuous(statistic)andard_missing(statistic)arguments has been updated. Previously, the RHS of these argument’s passed lists would be eithercontinuous_summary_fns()andmissing_summary_fns(). Now these arguments accept simple character vectors of the statistic names. For example,ard_categorical(statistic = everything() ~ c("n", "p", "N"))andard_missing(statistic = everything() ~ c("N_obs", "N_miss", "N_nonmiss", "p_miss", "p_nonmiss")). (#223)Updated
ard_stack()to returnn,p, andNfor thebyvariable when specified. Previously, it only returnedNwhich is the same for all levels of the by variable. (#219)Bug fix where
ard_stack(by)argument was not passed toard_missing()whenard_stack(.missing=TRUE). (#244)The
ard_stack(by)argument has been renamed to".by"and its location moved to after the dots inputs, e.g.ard_stack(..., .by). (#243)-
A messaging overhaul to utilize the scripts in
https://github.com/ddsjoberg/standalone/blob/main/R/standalone-cli_call_env.R. This allows clear error messaging across functions and packages. (#42)- The
print_ard_conditions(call),check_list_elements(env),cards_select(.call)arguments have been removed.
- The
