Skip to contents

A function that accepts tabular data, in a range of formats, and outputs an object of class flextable() (intended) for display in html and word documents.

Usage

thekids_table(
  x,
  font.size = 10,
  font.size.header = 11,
  line.spacing = 1.5,
  padding = 2.5,
  colour = "CoolGrey",
  zebra = FALSE,
  highlight = NULL,
  font_family = "Barlow",
  date_fix = TRUE,
  ...
)

Arguments

x

a table, typically a data.frame, tibble, or output from gtsummary.

font.size

the font size for text in the body of the table, defaults to 8 (passed through to set_flextable_defaults).

font.size.header

the font size for text in the header of the table, defaults to 10.

line.spacing

line spacing for the table, defaults to 1.5 (passed through to set_flextable_defaults).

padding

padding around all four sides of the text within the cell, defaults to 2.5 (passed through to set_flextable_defaults).

colour

a colour palette from The Kids branding, options include "Saffron", "Pumpkin", "Teal", "DarkTeal", "CelestialBlue", "AzureBlue", "MidnightBlue", or "CoolGrey", defaults to 'CoolGrey'.

zebra

controls alternating highlighting of rows, logical or integer (defaults to F); if TRUE, alternate each row's background with colour; if an integer, alternate row blocks of this size are highlighted; if negative, this will invert the sequence of highlighted blocks; (defaults to F)

highlight

a numeric vector indicating which rows are to receive a colour highlight, based on the selected colouring (defaults to NULL giving no highlighted rows).

font_family

string containing the font family to apply to the table. Default "Barlow", otherwise "sans".

date_fix

re-wraps date objects to strictly occupy one line, instead of splitting (defaults to T).

...

other parameters passed through to set_flextable_defaults.

Value

a flextable class object that will display in both html and word output

Details

The purpose of this function is easily coerce many different table structures in a consistent format (look and feel), with The Kids branding applied, that ultimately will look nice in either an html or word output.

Default settings produce a relatively compact table, to avoid reports becoming excessively lengthy.

The output can be piped (%>%) into further flextable() functions for advance customisation of the appearance.

Currently the function works well with input in the form of data frames, tibbles, dplyr pipes (think summarise()), gtsummary, and kable outputs.

Note

Errors may be encountered if the input to the function (kable/gtsummary/flextable) has already received a lot of processing (merging cells, aesthetic changes). The intention is that these things would occur after running thekids_table().

Font family must be installed at a system level, otherwise the default ("sans") will be applied.

Pre-specified formatting applied to 'flextable' objects (ahead of thekids_table()) may not carry over as expected. Please consider using thekids_table() in place of an explicit flextable() call, because our function already coerces the table to a flextable object.

Examples


if (FALSE) { # \dontrun{

head(mtcars, 10) %>%
  thekids_table(colour = "Saffron")


mtcars %>%
  select(cyl, mpg, hp, wt, gear) %>%
  group_by(cyl, gear) %>%
  summarise(mean_mpg = mean(mpg),
            mean_hp = mean(hp),
            mean_wt = mean(wt)) %>%
  thekids_table(colour = "CelestialBlue", highlight = c(4:6),
                padding.left = 20, padding.right = 20)
} # }