- empty level check for splitting variables temporarily removed. It is very likely to be reinstated in a future release.
col_counts
getter and setter now acceptpath
argument.- empty levels of a splitting variable now result in an informative error message (character and factor cases).
- fixed bug in handling of column extra arguments that was preventing cbinding tables from working correctly (#324)
- empty factor levels are now not dropped for column splits when ref_group is set (#323)
linesep
argument totoString
and related functions renamed tohsep
- Increase versioned dependency on
formatters
to>=0.3.0
- Default "line separator" between header and body now falls back to "-" non-UTF charset locales.
- New
hsep
argument tobuild_table
which sets the horizontal separator for the constructed table (and subtables thereof) - New
horizontal_sep
andhorizontal_sep<-
accessors for constructed tables, the latter of which is mandatorily recursive. split_rows_by(var, child_labels="hidden")
no longer removes the structural subtable corresponding to levels ofvar
(#314)
formatable
dependency renamed toformatters
for suitability of release to CRAN- Update versioned dependency of
formatters
(previouslyformatable
) to>=0.2.0
- Fix bug when function format combined with NULL cfun caused error (#307)
- Fix bug in
path_enriched_df
(which powers tsv export), related to (#308)
- added
table_shell
to display shell of table with formats
- added
linesep
argument totoString
to specify a character to create the line separator. Previously we used the en dash as the line separator character, now we changed the default to the em dash reducing the gap between the dash line elements.
- Initializing layouts with
NULL
is now deprecated insert_rrow
is deprecated in favor of newinsert_row_at_path
andlabel_at_path<-
functions- split and analysis/content functions can now depend on values of splits they are nested inside by accepting and using the new
.spl_context
optional argument - new
trim_levels_to_map
split function for dictating exact combinations of values which should appear across splits value_formats
function now exported which returns/displays the effective formats of all cells in a tablecompare_rtables
is now much faster for tables with many cellscompare_rtables
now acceptsstructure
argument which adds comparison of structure (by way of row- and column-path positions)- new
tt_to_flextable
coercion function - new
export_as_pdf
exporter function value_at
andcell_values
functions now have methods forTableRow
objects making them usable in sorting/pruning functions
- new
trim_levels_to_map
split function based on wwojtek's work in #203 - support for column referential footnotes
- support for adding footnotes to existing table via
fnotes_at_path<-
function trim_levels_in_group
now trims empty levels of outer (split) variable by defaultvalue_at
andcell_values
now work for tablerow objects- Fixed
as_html
bug in multvar split columns case - Fixed pagination off-by-one error
- Add experimental support for newlines in column names, row labels, and cell values (not supported in top-left annotations)
as_html
refactored to support newlines while respecting table structure- self_extent column of df returned by
make_row_df
now reflects extent in lines, thus will return larger values if the row-label or any cell values contain newlines. - Fix bug where tables output using
as_html
(or viewed inViewer
) were missing the table class attribute (#194) - inserting a DataRow with incorrect number of columns is now an error (#199)
- Referential footer machinery now works in colspan case.
- Fix extraneous footnote attribute bug (#198)
- Fix max -Inf warning when content rows appear at positions whose children have 0 visible rows (#200)
- Resync NEWS.md file
- Introduce titles and footnotes
- Support automatic population of top-left
- Introduce referential footnote support for cells and row labels
- Added
vars_in_layout
to list (explicitly named only) variables used in a layout - Fix column label ordering bug when value label variable is a factor (#173)
Synchronize release with GitHub commit sha.
Documentation revisions as requested by CRAN. No change to package code.
Documentation-text only changes to introduction vignette to pass CRAN's URL checks. All package, example, test, and vignette code fully identical to that in tagged github release 0.3.4
Minor changes to the 0.3.3 version in order to submit rtables to CRAN.
This version completely refactors the rtables
package. We do provide a backwards compatibility layer with the
rtable
, rcell
, rrow
, rheader
, and rtabulate
family of functions. However the table data structure and main
tabulation framework have changed. We provide extensive documentation in the manuals help(package = "rtables")
and
vignettes vignette(package = "rtables")
of the package.
The changes to rtables
have been undertaken to better meet the requirements of creating and analyzing & reporting
tables in the context of clinical trials.
make_afun
nowforce()
s all customization arguments immediately, which prevents problems when called within loop/lapply constructs.
- Tabulation machinery no longer removes NAs mandatorily in some cases, including mutlivar column splits
analyze_colvars
'sinclNAs
argument now respected.
- Fix indent modifier propogation during tabulation
- Fix indent calculation in
make_pagdf
- Add significant testing to ensure
make_pagdf
indent calculation remains correct
- Rework how reference columns are handled so analyses which use
.in_ref_col
and.ref_group
work correctly when custom splitting is used (including the provided combination-levels mechanism)
- Fix naming/pathing for columns in multivar case (split itself now has default name "multivars")
- Fix labelling bug when same variable appears multiple times in MultiVarSplit with different associated levels
- Allow single variable to be used within
split_cols_by_multivar
- Various removal of defunct
- Fix regression caused by 0.3.2.17.9039 where column split values were displayed by name rather than label.
- Fix bug in display of column information when column structure is not symetric, as with recursive cbinds.
- Fixed bug in row subsetting when table has only content rows.
- Basic compare_rtables function now works as in previous versions, no awareness of row or column structure.
summarize_row_groups
can now accept a list of functions for thecfun
argument asanalyze_colvars
does.
- Fix bug unearthed by change in 0.3.2.17.9034 where cell formats not retained during column subsetting
- Fix internal
value_formats
accessor so it operates on CellValues rather than the raw contained values (thus always returning NULL) rrow
constructor no longer interpretes cell formats a row format when they are the same across all cells. Fixes bug in "correct way" code discussed in #112
- Interpret .formats in
in_rows
as cell formats rather than row formats.
- cbind_rtables can now take more than 2 tables.
- Fix issue underlying spurious length-missmatch warning in some cases when using
analyze_colvars
analyze_colvars
now takes and adheres toinclNAs
argument
- issues with no news:
- added format
xx.xx (xx.xx - xx.xx)
andx.xxxx | (<0.0001)
- Minor changes.
- Changed testing approach to fit internal pipelines.
- Replaced dots to underscore in class checking functions.
-
col_by
inrtabulate
now accepts matrices:col_by_to_matrix
,col_by_to_factor
,by_factor_to_matrix
.by_add_total
,by_all
,by_combine
,by_quartile
,by_compare_subset
,by_hierarchical
,by_drop_empty_cols
.
-
New utility functions to deal with variable labels:
label
,var_labels<-
,var_labels
,var_labels_remove
,var_relabel
,with_label
.
-
Other new functions:
cbing_rtables
.empty_rtables
,is_empty_rtable
,is_non_empty_rtable
,is_rtable
.header_indent
,header_indent<-
,header_row.names
,header_row.names<-
.insert_rrow
.
rbind.rtable
now supports binding rtables with rows, e.g.rbind(tbl1, rrow(), tbl2)
orrbind(tbl1, rrow("row name"), tbl2)
.rbindl_rtables
supportsNULL
objects in the list (except for the first element).- Add
indent
function. header_add_N
deals gracefully withNULL
objects.
rtablulate
family of functions do not support therow_*_data_args
arguments anymore. Instead, thecol_wise_args
argument is introduced.- Functions
order_rrows
,sort_rrows
,order_rtables
, andsort_rtables
are introduced. - Prevent
rtables
from being unlisted withunlist.rtables
.
Viewer
now also accepts objects of classshiny.tag
(defined in packagehtmltools
).as.html
acceptsclass.table
,class.tr
,class.th
, andclass.td
as an argument.
- Added
sprintf_format
for formatting rcells (thanks to Doug Kelkhoff for the suggestion). - Added
"(N=xx)"
and">999.9"
format labels. rtabulate
has now an argumentcol_N
and the functioncol_N()
.
- Version
0.1.0
is a major re-design with lots of internal refactoring and the following API changes:- Redesign:
rtable
has nowheader
argument instead ofcol.names
. Aheader
can be created withrheader
and is a collection ofrrow
s. Ifheader
is set toc("A", "B")
thenrtable
will create therheader
with a singlerrow
and by settingrow.name
toNULL
. header
andheader<-
function added.- Renamed
get_rcell_formats
tolist_rcell_format_labels
. - If
rcell
format isNULL
then the cell content will be converted to a string withpaste(as.character(x), collapse = ', ')
. - Accessor
[i,]
works now to subset a table. rbind
method for rtables.row.names<-.rtable
method.rtabulate
added for creating tables.indented_row.names
function added.
- Redesign:
- Initial public release