Skip to contents

If your variable names contain multiple delimited labels, they will be separated and placed in their own rows. add_header illustration

Usage

separate_header(
  x,
  opts = c("span-top", "center-hspan", "bottom-vspan", "default-theme"),
  split = "[_\\.]",
  fixed = FALSE
)

Arguments

x

a flextable object

opts

optional treatments to apply to the resulting header part as a character vector with multiple supported values.

The supported values are:

  • "span-top": span empty cells with the first non empty cell, this operation is made column by column.

  • "center-hspan": center the cells that are horizontally spanned.

  • "bottom-vspan": bottom align the cells treated when "span-top" is applied.

  • "default-theme": apply to the new header part the theme set in set_flextable_defaults(theme_fun = ...).

split

a regular expression (unless fixed = TRUE) to use for splitting.

fixed

logical. If TRUE match split exactly, otherwise use regular expressions.

See also

Examples

library(flextable)

x <- data.frame(
  Species = as.factor(c("setosa", "versicolor", "virginica")),
  Sepal.Length_mean = c(5.006, 5.936, 6.588),
  Sepal.Length_sd = c(0.35249, 0.51617, 0.63588),
  Sepal.Width_mean = c(3.428, 2.77, 2.974),
  Sepal.Width_sd = c(0.37906, 0.3138, 0.3225),
  Petal.Length_mean = c(1.462, 4.26, 5.552),
  Petal.Length_sd = c(0.17366, 0.46991, 0.55189),
  Petal.Width_mean = c(0.246, 1.326, 2.026),
  Petal.Width_sd = c(0.10539, 0.19775, 0.27465)
)

ft_1 <- flextable(x)
ft_1 <- colformat_double(ft_1, digits = 2)
ft_1 <- theme_box(ft_1)
ft_1 <- separate_header(
  x = ft_1,
  opts = c("span-top", "bottom-vspan")
)
ft_1

Species

Sepal

Petal

Length

Width

Length

Width

mean

sd

mean

sd

mean

sd

mean

sd

setosa

5.01

0.35

3.43

0.38

1.46

0.17

0.25

0.11

versicolor

5.94

0.52

2.77

0.31

4.26

0.47

1.33

0.20

virginica

6.59

0.64

2.97

0.32

5.55

0.55

2.03

0.27