Transform a complex object into a string representation ready to be printed or written to a plain-text file
All objects that are printed to console pass by toString
. This function allows
fundamental formatting specifications for the final output, like column widths and
relative wrapping (width
), title and footer wrapping (tf_wrap = TRUE
and
max_width
), or horizontal separator character (e.g. hsep = "+"
).
Usage
# S4 method for VTableTree
toString(
x,
widths = NULL,
col_gap = 3,
hsep = horizontal_sep(x),
indent_size = 2,
tf_wrap = FALSE,
max_width = NULL
)
Arguments
- x
table object
- widths
widths of row.name and columns
- col_gap
gap between columns
- hsep
character to create line separator
- indent_size
numeric(1). Number of spaces to use per indent level. Defaults to 2
- tf_wrap
logical(1). Should the texts for title, subtitle, and footnotes be wrapped?
- max_width
integer(1), character(1) or NULL. Width that title and footer (including footnotes) materials should be word-wrapped to. If NULL, it is set to the current print width of the session (
getOption("width")
). If set to"auto"
, the width of the table (plus any table inset) is used. Ignored completely iftf_wrap
isFALSE
.
Details
Manual insertion of newlines is not supported when tf_wrap
is on
and will result in a warning and undefined wrapping behavior. Passing
vectors of already split strings remains supported, however in this
case each string is word-wrapped separately with the behavior
described above.
Examples
library(dplyr)
iris2 <- iris %>%
group_by(Species) %>%
mutate(group = as.factor(rep_len(c("a", "b"), length.out = n()))) %>%
ungroup()
lyt <- basic_table() %>%
split_cols_by("Species") %>%
split_cols_by("group") %>%
analyze(c("Sepal.Length", "Petal.Width"), afun = list_wrap_x(summary) , format = "xx.xx")
tbl <- build_table(lyt, iris2)
cat(toString(tbl, col_gap = 3))
#> setosa versicolor virginica
#> a b a b a b
#> —————————————————————————————————————————————————————————
#> Sepal.Length
#> Min. 4.40 4.30 5.00 4.90 4.90 5.60
#> 1st Qu. 4.80 4.80 5.60 5.60 6.20 6.30
#> Median 5.00 5.00 5.90 5.90 6.50 6.50
#> Mean 5.02 4.99 5.99 5.88 6.50 6.67
#> 3rd Qu. 5.30 5.10 6.40 6.10 6.70 7.20
#> Max. 5.80 5.70 7.00 6.70 7.70 7.90
#> Petal.Width
#> Min. 0.10 0.10 1.00 1.00 1.40 1.50
#> 1st Qu. 0.20 0.20 1.20 1.20 1.90 1.80
#> Median 0.20 0.20 1.30 1.30 2.10 2.00
#> Mean 0.23 0.26 1.35 1.30 2.08 1.98
#> 3rd Qu. 0.20 0.30 1.50 1.40 2.30 2.20
#> Max. 0.40 0.60 1.80 1.70 2.50 2.50