rtables 0.6.4
New Features
- Added support for
.docx
exports withexport_as_docx()
. - Expanded support for
flextable
customization with theme function specific for word documents (theme_docx_default()
).
rtables 0.6.3
CRAN release: 2023-08-30
New Features
- Analysis functions (
cfun/afun
) can use new parameters to extend analysis calculations:.alt_df_row
and.alt_df
give access toalt_counts_df
across columns, while.all_col_exprs
and.all_col_counts
contains global information about all columns. - Binding objects via
rbind
will retain titles/footer information if identical in all objects or only present in the first object being bound.
Enhancements
- Analysis functions (
cfun/afun
) have more information about current column split;.spl_context
has access tocur_col_id
,cur_col_expr
,cur_col_split
, andcur_col_split_val
. - Added vignette on exploratory analysis with
qtable
. - Extracted
qtable_layout
fromqtable
.
Bug Fixes
- Page-by splits which generate zero facets (and thus tables which would have zero pages when rendered) now throw an informative error at table build time.
- Removed superfluous warning which arose for custom split functions when reference group is is set (https://github.com/insightsengineering/rtables/issues/707#issuecomment-1678810598).
- Fixed
qtable
labeling viarow_labels
(#698). - Error catching and test coverage for cases where
alt_counts_df
presents different splits fromdf
.
Miscellaneous
- Cleaned up spelling in documentation (#685)
- Custom appearance vignette updated with decimal alignment support.
- Alignment checks have been moved into
formatters
:formatters::check_aligns
superseded internal functionchk_rtables_align
andformatters::list_valid_aligns
supersededrtables_aligns
.
rtables 0.6.2
- Fixed major regressions for
page_by
machinery caused by migration toformatters
0.5.1 pagination framework. - Fixed
page_by
labels become missing when only one level exist in thesplit_rows_by
. - Fixed a bug when dropping
var
levels but notlblvar
levels. - Added checks to catch bad labels (with {}) and throw informative error.
- Added
qtable
function to create a table with a single top-level structure in both row and column dimensions involving faceting by 0 or more variables in each. - Added
as_result_df
function to flatten a table into a dataframe. - Added
sanitize_table_struct
,validate_table_struct
,find_degen_struct
to support degenerative table rendering.
rtables 0.6.1
CRAN release: 2023-05-25
- Improved resilience of pagination machinery (
paginate_table
) by generalizing parameters’ defaults (cpp
,lpp
, andfont_size
). - Moved
export_as_txt
toformatters
. Added to reexports. - Migrated
export_as_rtf
toformatters
. Not re-exported. - add
r2rtf
to Suggests - pagination logic has been migrated completely (excepting page_by splits) to
formatters
and is now invoked from there. paginate_table remains as a convenience function. - Removed warning in
str
method when called upon table objects. - Provide
str
method forVTableTree
objects with a defaultmax.level
of 3, as the infinite default from base is not useful or informative. - default
font_size
value is now8
across pagination and export machinery -
margins
argument in pagination and export machinery now (correctly) interpreted as inches. This change is inherited fromformatters
-
lpp
andcpp
now default toNA_integer_
, which is interpreted as inferring their value from the physical page size specified. - Horizontal pagination now occurs by default due to the above (because there is a default page type -
"letter"
. Pagination can still be turned off in either direction by settingl/cpp
toNULL
explicitly. - Referential footnotes now have both a
symbol
and anindex
. Messages associated with symbols will only appear once per page in the footer materials regardless of number of elements referenced in the page with that symbol. Matches and inherits from changes informatters
- Started deprecation cycle for
trim_zero_rows
. - Fixed bug occurring when extracting
cell_values
after sorting. - Removed deprecated function
vpaginate_table
. - Added examples and details for
sort_at_path
. - Added
split_label
to functionsplit_rows_by_multivar
andextra_args
to functionsplit_cols_by_multivar
. - Added
split_rows_by_multivar
documentation.
rtables 0.6.0
CRAN release: 2023-03-02
- added
make_split_fun
function for creation of custom split functions -
basic_table
now acceptscolcount_format
- 2d formats are now allowed for column counts provided one element is a percent, which will be automatically set to 100%
-
spl_context
now includes root row in row-split contexts. - Added vignette on format precedence
- Added vignette on split functions
- Added custom appearance vignette
- Significant overhaul of sorting vignette
- extended and clarified documentation
-
export_as_pdf
now correctly takesmargins
into account when calculatinglpp
andcpp
from page size. - exporters now pass down non-default
colwidths
values correctly -
nlines
TableRow
method (used for both rows and column label extent in pagination) now correctly handles column spanning - pagination with
verbose = TRUE
now includes original and adjusted lines-per page information -
cont_n_allcols
andcont_n_onecol
score functions now throw errors when they are applied to subtables that have no content table, instead of the previously returnedNA
-
sort_at_path
now emits an informative error message when score functions fail. -
paginate_table
now acceptscolwidths
and paginates assuming column label and cell values are wrapped to those widths. -
make_row_df
now acceptscolwidths
and calculates row extents assuming cell values are wrapped to those widths -
nlines
TableRow
method now uses providedcolwidths
to assume cell-value wrapping -
export_to_txt
now automatically paginates when any form of page dimension is provided (previously the default was unconditionally not paginating). - Versioned dependency on
formatters
increased to>=0.4.0
rtables 0.5.3
-
[<-
now treats characteri
andj
values as paths, the same as[
always has. -
[<-
CellValue
method now preservesCellValue
attributes (e.g., format) - More detailed subsetting and modification vignette
-
nlines
methods now accept bothcolwidths
andmax_width
-
max_width
is now used during pagination to determine lines taken up by referential footnotes -
make_col_df
now acceptscolwidths
argument, and can be called directly onInstantiatedColumnInfo
objects - versioned dependency on
formatters
increase to>0.3.3.12
- word wrapping title/footer materials no longer fails in the presence of
""
values. - versioned dependency on
formatters
increase to>0.3.3.11
-
paginate_table
now acceptstf_wrap
andmax_width
and respects title/footer word wrapping when present - export functions now accepts
tf_wrap
andmax_width
and use them in both pagination (when turned on) andtoString
when used (pdf, txt exporters). - versioned dependency on
formatters
increased to>0.3.3.10
-
export_as_pdf
now accepts standard page/font size parameters - original parameters (
width
,height
,fontsize
are soft deprecated (no warning) and will be fully deprecated and then removed in the future. -
toString
method forVTableTree
now acceptstf_wrap
andmax_width
-
export_as_txt
andexport_as_pdf
now acceptcpp
, as well astf_wrap
andmax_width
and default totf_wrap
being on andmax_width = cpp
whencpp
is non-NULL. -
basic_table
now acceptsinset
argument for declaring table inset - Table and Layout object classes now have a
table_inset
slot, with accessor functions. -
matrix_form
method forVTableTree
setstable_inset
value - Increase versioned dependency on
formatters
to>0.3.3.5
fortable_inset
support - Use
exact=TRUE
in all calls toattr
within access functions - Increase versioned dependency on
formatters
to>0.3.3.4
- layouting instructions now accept
na_str
argument, which specifiesna
string with the same inheritance rules as formats - (pre-data) Split and (post tabulation) Table/row S4 classes now carry around
na_str
information - Increase versioned dependency on
formatters
to>= 0.3.3.3
for support ofna_str
s withNA_character_
values -
paginate_table
now takes page dimension and font information and usesformatters::page_lcpp
to calculatelpp
andcpp
automatically when those are provided. - Increase versioned dependency on
formatters
to>= 0.3.3.2
forpage_lcpp
rtables 0.5.2
-
paginate_table
now acceptscpp
and will perform vertical pagination when it is non-null -
vpaginate_table
is now deprecated - Increased versioned dependency on
formatters
to>=0.3.2.4
rtables 0.5.1.5
- Support for section dividers (
section_div
argument insplit_rows_by*
function) - Updated versioned dependency on
formatters
to>=0.3.2.3
- Equivalent split functions with different enclosing environments (e.g., 2 identical calls to
add_combo_levels
#340) no longer blockrbind
ing - Fixed various documentation bugs where description section was being added to header.
rtables 0.5.1.3
- Throw informative error messages when custom analysis, content or split functions fail (#329)
rtables 0.5.1.2
- empty level check for splitting variables temporarily removed. It is very likely to be reinstated in a future release.
rtables 0.5.1.1
-
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
cbind
ing tables from working correctly ([#324]](https://github.com/insightsengineering/rtables/issues/324))
rtables 0.5.1
CRAN release: 2022-05-21
- 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)
rtables 0.5.0
CRAN release: 2022-04-01
-
formatable
dependency renamed toformatters
for suitability of release to CRAN - Update versioned dependency of
formatters
(previouslyformatable
) to>=0.2.0
rtables 0.4.1.0001
- 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.
rtables 0.4.0
CRAN release: 2021-10-06
- 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 table -
compare_rtables
is now much faster for tables with many cells -
compare_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
rtables 0.3.8.9001
- new
trim_levels_to_map
split function based on[@wwojciech](https://github.com/wwojciech)
’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 default -
value_at
andcell_values
now work fortablerow
objects - Fixed
as_html
bug inmultivar
split columns case - Fixed pagination off-by-one error
rtables 0.3.8
CRAN release: 2021-07-13
- 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 bymake_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)
rtables 0.3.6
CRAN release: 2021-01-22
Documentation revisions as requested by CRAN. No change to package code.
rtables 0.3.5
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
rtables 0.3.3
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.
rtables 0.3.2.17.9046
-
make_afun
nowforce()
s all customization arguments immediately, which prevents problems when called within loop/lapply
constructs.
rtables 0.3.2.17.9045
- Tabulation machinery no longer removes NAs mandatorily in some cases, including
multivar
column splits -
analyze_colvars
’sinclNAs
argument now respected.
rtables 0.3.2.17.9044
- Fix indent modifier propagation during tabulation
- Fix indent calculation in
make_pagdf
- Add significant testing to ensure
make_pagdf
indent calculation remains correct
rtables 0.3.2.17.9043
- 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)
rtables 0.3.2.17.9042
- Fix naming/pathing for columns in
multivar
case (split itself now has default name"multivars"
) - Fix labeling bug when same variable appears multiple times in
MultiVarSplit
with different associated levels
rtables 0.3.2.17.9041
- Allow single variable to be used within
split_cols_by_multivar
- Various removal of defunct
rtables 0.3.2.17.9040
- Fix regression caused by 0.3.2.17.9039 where column split values were displayed by name rather than label.
rtables 0.3.2.17.9039
- Fix bug in display of column information when column structure is not symmetric, as with recursive
cbind
s.
rtables 0.3.2.17.9036
- 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.
rtables 0.3.2.17.9036
-
summarize_row_groups
can now accept a list of functions for thecfun
argument asanalyze_colvars
does.
rtables 0.3.2.17.9035
- Fix bug unearthed by change in 0.3.2.17.9034 where cell formats not retained during column subsetting
rtables 0.3.2.17.9034
- Fix internal
value_formats
accessor so it operates onCellValue
s rather than the raw contained values (thus always returning NULL) -
rrow
constructor no longer interprets cell formats a row format when they are the same across all cells. Fixes bug in “correct way” code discussed in #112
rtables 0.3.2.17.9029
- Fix issue underlying spurious length-mismatch warning in some cases when using
analyze_colvars
rtables 0.1.3
-
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
.
-
rtables 0.1.2
-
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.
rtables 0.1.1
-
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
.
rtables 0.1.0.6
-
Viewer
now also accepts objects of classshiny.tag
(defined in packagehtmltools
). -
as.html
acceptsclass.table
,class.tr
,class.th
, andclass.td
as an argument.
rtables 0.1.0.5
- Added
sprintf_format
for formattingrcell
s (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()
.
rtables 0.1.0
- 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: