Learn R Programming

flextable (version 0.7.0)

summarizor: data summary preparation

Description

It performs a univariate statistical analysis of a dataset by group and formats the results so that they can be used with the tabulator() function.

Usage

summarizor(x, by = character(), overall_label = NULL)

Arguments

x

dataset

by

columns names to be used as grouping columns

overall_label

label to use as overall label

Illustrations

ft_1 appears as:

ft_2 appears as:

See Also

fmt_2stats()

Examples

Run this code
# NOT RUN {
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