z <- summarizor(CO2[-c(1, 4)],
by = "Treatment",
overall_label = "Overall"
)
# version 1 ----
tab_1 <- tabulator(
x = z,
rows = c("variable", "stat"),
columns = "Treatment",
blah = as_paragraph(
as_chunk(
fmt_2stats(
num1 = stat, num2 = value, cts = cts, pcts = percent
)
)
)
)
ft_1 <- as_flextable(tab_1, separate_with = "variable")
ft_1
# version 2 ----
n_format <- function(n, percent) {
z <- character(length = length(n))
wcts <- !is.na(n)
z[wcts] <- sprintf("%.0f (%.01f %%)", n[wcts], percent[wcts] * 100)
z
}
stat_format <- function(value) {
z <- character(length = length(value))
wnum <- !is.na(value)
z[wnum] <- sprintf("%.01f", value[wnum])
z
}
tab_2 <- tabulator(z,
rows = c("variable", "stat"),
columns = "Treatment",
`Est.` = as_paragraph(as_chunk(value)),
`N` = as_paragraph(as_chunk(n_format(cts, percent)))
)
ft_2 <- as_flextable(tab_2, separate_with = "variable")
ft_2
Run the code above in your browser using DataLab