Tables are the key format in which epidemiologists present their results. Many results tables in applied studies merely show point estimates and confidence intervals, or even p-values, from regression models: a “growing rift between epidemiologists and their data” (Rothman 2017). “Actual,” descriptive data, such as counts stratified by exposure and a main confounder or effect modifier, are often lacking.
rifttable creates presentation-ready results tables for epidemiologists in an automated, reproducible fashion. The user provides the final analytical dataset and specifies the design of the table, with rows and/or columns defined by exposure(s), effect modifier(s), and estimands as desired, allowing to show descriptors and inferential estimates in one table – bridging the rift between epidemiologists and their data, one table at a time.
The rifttable package can be installed from CRAN:
install.packages("rifttable")Development versions can be installed from GitHub using:
remotes::install_github("stopsack/rifttable")The latter installation procedure requires the remotes package,
obtainable via install.packages("remotes").
library(rifttable)
example_design <- tibble::tribble(
~label, ~type, ~stratum,
"Overall", "", "",
"– Deaths/N", "outcomes/total", c("Low", "High"),
"– Risk", "risk", c("Low", "High"),
"– Risk ratio (95% CI)", "rr", c("Low", "High"),
"– Risk difference (95% CI)", "rd", c("Low", "High"),
"", "", "",
"Low hormone receptor", "", "",
"– Deaths/N (Risk)", "outcomes/total (risk)", "Low",
"– Risk difference (95% CI)", "rd", "Low",
"High hormone receptor", "", "",
"– Deaths/N (Risk)", "outcomes/total (risk)", "High",
"– Risk difference (95% CI)", "rd", "High"
) |>
dplyr::mutate(
exposure = "stage",
outcome = "death",
effect_modifier = "receptor"
)
rifttable(
design = example_design,
data = risks::breastcancer
)| Stage | Stage I | Stage II | Stage III |
|---|---|---|---|
| Overall | |||
| – Deaths/N | 7/67 | 26/96 | 21/29 |
| – Risk | 0.10 | 0.27 | 0.72 |
| – Risk ratio (95% CI) | 1 (reference) | 2.59 (1.20, 5.6) | 6.9 (3.3, 14) |
| – Risk difference (95% CI) | 0 (reference) | 0.17 (0.05, 0.28) | 0.62 (0.44, 0.80) |
| Low hormone receptor | |||
| – Deaths/N (Risk) | 2/12 (0.17) | 9/22 (0.41) | 12/14 (0.86) |
| – Risk difference (95% CI) | 0 (reference) | 0.24 (-0.05, 0.54) | 0.69 (0.41, 0.97) |
| High hormone receptor | |||
| – Deaths/N (Risk) | 5/55 (0.09) | 17/74 (0.23) | 9/15 (0.60) |
| – Risk difference (95% CI) | 0 (reference) | 0.14 (0.02, 0.26) | 0.51 (0.25, 0.77) |
For more examples, see the Get Started vignette.