This package received Honorable Mention in Posit Table Contest 2022.
The goal of {tableboom}
is to let user choose the R script to inspect
intermediate results of all calls (using
{boomer}
) in the form of
HTML table. Three main features are:
- give the user possibility to inspect intermediate steps of all calls
in the chosen R script, i.e. no need to
boomer::boom()
each call separately; - prepare output as an HTML document, so it can be read outside of programming process;
- prepare HTML document as a table, but trying to make it more like a word story than table;
With this software, vignette Treating Code As Data - Notes
was
prepared as some kind of tutorial about metaprogramming (in the part it
is used in {tableboom}
), which is available also online: Treating
Code As Data - Notes.
You can install the development version of {tableboom}
from
GitHub with:
# install.packages("devtools")
devtools::install_github("gsmolinski/tableboom")
# or with vignette, but installation time will be much longer
devtools::install_github("gsmolinski/tableboom", build_vignettes = TRUE)
Having the following example script which we would like to inspect:
library(dplyr)
path <- file.path(system.file(package = "tableboom","table_contest_2022", "inner_script"),
"eurostat_data.R")
# Unfortunately, comments in separate lines are not included
source(path) # data - children (< 18) from Ukraine which found temp protection
names(child_ukr_prot) <- c("country", "march_2022", "april_2022",
"may_2022","june_2022", "july_2022", "august_2022")
child_ukr_prot[5, "country"] <- stringi::stri_replace_all_regex(child_ukr_prot[5, "country"],
"\\s+.+", "")
child_ukr_prot <- child_ukr_prot |>
mutate(across(matches("\\d$"), \(e) if_else(e == ":", NA_character_, e)),
across(matches("\\d$"), as.integer))
maxs <- vector("integer", ncol(child_ukr_prot) - 1)
for (i in 2:(ncol(child_ukr_prot))) {
maxs[[i - 1]] <- max(child_ukr_prot[[i]], na.rm = TRUE)
}
maxs
total_months <- colSums(child_ukr_prot[, 2:ncol(child_ukr_prot)], na.rm = TRUE)
format(sum(total_months), big.mark = " ")
path()
the usage of {tableboom}
is nothing more than calling inspect_r()
with the path to the script (or NULL
argument - and then saved and
opened script in the RStudio editor will be used):
path <- file.path(system.file(package = "tableboom", "table_contest_2022"), "children_from_ukr_temp_prot_eu.R")
tableboom::inspect_r(path)