knitr::opts_chunk$set( collapse = TRUE, comment = "#>", fig.path = "man/figures/README-", out.width = "100%" )
You can install {gtreg} with the following code.
install.packages("gtreg")
You can install the development version of {gtreg} from GitHub with:
# install.packages("devtools") devtools::install_github("shannonpileggi/gtreg")
The {gtreg} package creates tabular data summaries appropriate for regulatory submissions. The package builds the tables using {gtsummary}.
Here are slides and a recorded talk (17 min) from "Introducing {gtreg}: an R package to produce regulatory tables for clinical research" presented at the 2022 R in Medicine conference.
Summarize Raw Adverse Counts
tbl_ae_count()
provides counts of all AEs, and omits percentage statistics as multiple AEs
can occur per subject.
library(gtreg) tbl_ae_count <- df_adverse_events |> tbl_ae_count( ae = adverse_event, soc = system_organ_class, by = drug_attribution ) |> add_overall(across = "by") |> modify_spanning_header(all_ae_cols() ~ "**Drug Attribution**") |> bold_labels()
# Had to manually save images in temp file, not sure if better way. gt::gtsave(as_gt(tbl_ae_count), file = file.path(tempdir(), "temp2.png"))
# Have to do this workaround since the README needs markdown format for GitHub page but a different format for the website. if (identical(Sys.getenv("IN_PKGDOWN"), "true")) { as_gt(tbl) } else { knitr::include_graphics("man/figures/README-example-tbl_ae_count-1.png") }
Summarize Adverse Events by Grade
tbl_ae()
counts one AE per subject by maximum grade; percentage statistics are provided by default with
the denominators reflecting the number of patients in the study.
library(gtreg) gtsummary::theme_gtsummary_compact() tbl_ae <- df_adverse_events |> tbl_ae( id_df = df_patient_characteristics, id = patient_id, ae = adverse_event, soc = system_organ_class, by = grade, strata = trt ) |> modify_header(all_ae_cols() ~ "**Grade {by}**") |> bold_labels()
# Had to manually save images in temp file, not sure if better way. gt::gtsave(as_gt(tbl_ae), file = file.path(tempdir(), "temp.png"))
# Have to do this workaround since the README needs markdown format for GitHub page but a different format for the website. if (identical(Sys.getenv("IN_PKGDOWN"), "true")) { as_gt(tbl) } else { knitr::include_graphics("man/figures/README-example-tbl_ae-1.png") }
Focus on rates of high grade complications
tbl_ae_focus()
also counts one AE per subject by maximum grade, and is a convenience
to summarize dichotomous AE attributes.
tbl_ae_focus <- df_adverse_events |> tbl_ae_focus( id_df = df_patient_characteristics, id = patient_id, ae = adverse_event, include = c(any_complication, grade3_complication) )
# Had to manually save images in temp file, not sure if better way. gt::gtsave(as_gt(tbl_ae_focus), file = file.path(tempdir(), "temp3.png"))
# Have to do this workaround since the README needs markdown format for GitHub page but a different format for the website. if (identical(Sys.getenv("IN_PKGDOWN"), "true")) { as_gt(tbl) } else { knitr::include_graphics("man/figures/README-example-tbl_ae_focus-1.png") }
Regulatory summary
tbl_reg_summary()
creates a data summary table often seen in regulatory submissions.
tbl_reg_summary <- df_patient_characteristics |> tbl_reg_summary(by = trt, include = c(marker, status))
# Had to manually save images in temp file, not sure if better way. gt::gtsave(as_gt(tbl_reg_summary), file = file.path(tempdir(), "temp4.png"))
# Have to do this workaround since the README needs markdown format for GitHub page but a different format for the website. if (identical(Sys.getenv("IN_PKGDOWN"), "true")) { as_gt(tbl) } else { knitr::include_graphics("man/figures/README-example-tbl_reg_summary-1.png") }
Print an AE listing
tbl_listing()
creates a gtsummary-class listing of data to enable grouped printing.
tbl_listing <- head(df_adverse_events, n = 10) |> select(system_organ_class, adverse_event, grade, drug_attribution, patient_id) |> dplyr::arrange(adverse_event, desc(grade)) |> tbl_listing(group_by = system_organ_class) |> bold_labels()
# Had to manually save images in temp file, not sure if better way. gt::gtsave(as_gt(tbl_listing), file = file.path(tempdir(), "temp5.png"))
# Have to do this workaround since the README needs markdown format for GitHub page but a different format for the website. if (identical(Sys.getenv("IN_PKGDOWN"), "true")) { as_gt(tbl) } else { knitr::include_graphics("man/figures/README-example-tbl_listing-1.png") }
Please note that the gtreg project is released with a Contributor Code of Conduct. By contributing to this project, you agree to abide by its terms.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.