Skip to contents

Transform a complex object into a string representation ready to be printed or written to a plain-text file

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 if tf_wrap is FALSE.

Value

a string representation of x as it appears when printed.

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