Spanning headers are a common requirement of regulatory tables, yet few reporting packages support them. reporter supports any number of spanning levels, along with a flexible and simple syntax to define them.
library(reporter)
# Create temporary path
<- file.path(tempdir(), "example5.txt")
tmp
# Prepare Data
<- mtcars[1:10, ]
dat <- data.frame(vehicle = rownames(dat), dat)
df
# Define Table with spanning headers
<- create_table(df) %>%
tbl titles("Table 1.0", "MTCARS Spanning Headers") %>%
spanning_header(from = "mpg", to = "hp", label = "Span 1", n = 10) %>%
spanning_header(from = "drat", to = "qsec", label = "Span 2", n = 10) %>%
spanning_header(from = "vs", to = "carb", label = "Span 3", n = 10) %>%
spanning_header(from = "drat", to = "carb",
label = "Super Span", level = 2) %>%
define(vehicle, label = "Vehicle") %>%
define(mpg, format = "%.1f") %>%
define(disp, visible = FALSE) %>%
define(am, visible = FALSE)
# Create Report and add table
<- create_report(tmp) %>%
rpt add_content(tbl, align = "left")
# Write the report
<- write_report(rpt)
res
# View in console
writeLines(readLines(tmp, encoding = "UTF-8"))
# Table 1.0
# MTCARS Spanning Headers
#
# Super Span
# --------------------------------
# Span 1 Span 2 Span 3
# (N=10) (N=10) (N=10)
# -------------- ------------------- ------------
# Vehicle mpg cyl hp drat wt qsec vs gear carb
# ------------------------------------------------------------------
# Mazda RX4 21.0 6 110 3.9 2.62 16.46 0 4 4
# Mazda RX4 Wag 21.0 6 110 3.9 2.875 17.02 0 4 4
# Datsun 710 22.8 4 93 3.85 2.32 18.61 1 4 1
# Hornet 4 Drive 21.4 6 110 3.08 3.215 19.44 1 3 1
# Hornet Sportabout 18.7 8 175 3.15 3.44 17.02 0 3 2
# Valiant 18.1 6 105 2.76 3.46 20.22 1 3 1
# Duster 360 14.3 8 245 3.21 3.57 15.84 0 3 4
# Merc 240D 24.4 4 62 3.69 3.19 20 1 4 2
# Merc 230 22.8 4 95 3.92 3.15 22.9 1 4 2
# Merc 280 19.2 6 123 3.92 3.44 18.3 1 4 4
Next: Example 6: Page Wrap