This vignette introduces how to create multi level headers.

Prepare flextable

ft <- iris[1:2, ] %>% as_flextable
ft

Sepal.Length

Sepal.Width

Petal.Length

Petal.Width

Species

5.1

3.5

1.4

0.2

setosa

4.9

3.0

1.4

0.2

setosa

Separate headers

The separate_header() function generates multi-level headers by separating original headers (row names) by delimiters.

Sepal

Sepal

Petal

Petal

Species

Length

Width

Length

Width

5.1

3.5

1.4

0.2

setosa

4.9

3.0

1.4

0.2

setosa

The sep argument defines delimiters by regular expression. The default delimiters are . and _. Let’s see what happens when seop = "e"

ft %>% separate_header(sep = "e")

S

S

P

P

Sp

pal.L

pal.Width

tal.L

tal.Width

ci

ngth

ngth

s

5.1

3.5

1.4

0.2

setosa

4.9

3.0

1.4

0.2

setosa

Span headers

The span_header() function also generates multi-level headers. Unlike the separate_header() function, the span_header() function merges adjacent headers if they have same values.

ft %>% span_header()

Sepal

Petal

Species

Length

Width

Length

Width

5.1

3.5

1.4

0.2

setosa

4.9

3.0

1.4

0.2

setosa