## ----setup, include=FALSE-----------------------------------------------------
reporting_ready <- requireNamespace("gtsummary", quietly = TRUE) &&
  utils::packageVersion("gtsummary") >= "2.6.1" &&
  requireNamespace("broom.helpers", quietly = TRUE)
knitr::opts_chunk$set(collapse = TRUE, comment = "#>", eval = reporting_ready)

## ----optional-packages, echo=FALSE, results='asis', eval=!reporting_ready-----
# cat("Install gtsummary version 2.6.1 or later and broom.helpers version 1.20.0 or later to run these examples. Reporting packages are optional for estimation.")

## ----first-regression-table---------------------------------------------------
library(cifmodeling)
library(gtsummary)
data(diabetes.complications)
report_data <- diabetes.complications
report_data$fruitq1 <- factor(report_data$fruitq1, levels = c(0, 1),
                            labels = c("Other intake", "Low intake"))
attr(report_data$fruitq1, "label") <- "Fruit intake"
fit <- polyreg(Event(t, epsilon) ~ age + sex, exposure = "fruitq1",
  code.exposure.ref = "Other intake", data = report_data, time.point = 8,
  effect.measure1 = "RR", effect.measure2 = "RR")

retinopathy_table <- tbl_regression(fit, exponentiate = TRUE)
retinopathy_table

## ----competing-event----------------------------------------------------------
macrovascular_table <- tbl_regression(fit, exponentiate = TRUE, event = "event2")
tbl_merge(list(retinopathy_table, macrovascular_table),
  tab_spanner = c("**Retinopathy**", "**Macrovascular complications**"))

## ----effect-measures----------------------------------------------------------
fit_or <- polyreg(Event(t, epsilon) ~ age + sex, exposure = "fruitq1",
  code.exposure.ref = "Other intake", data = report_data, time.point = 8,
  effect.measure1 = "OR", effect.measure2 = "OR")
fit_shr <- polyreg(Event(t, epsilon) ~ age + sex, exposure = "fruitq1",
  code.exposure.ref = "Other intake", data = report_data, time.point = 8,
  effect.measure1 = "SHR", effect.measure2 = "SHR")
tbl_merge(list(tbl_regression(fit, exponentiate = TRUE),
               tbl_regression(fit_or, exponentiate = TRUE),
               tbl_regression(fit_shr, exponentiate = TRUE)),
  tab_spanner = c("**RR model**", "**OR model**", "**SHR model**"))

## ----mixed-effect-measures----------------------------------------------------
fit_mixed <- polyreg(Event(t, epsilon) ~ age + sex, exposure = "fruitq1",
  code.exposure.ref = "Other intake", data = report_data, time.point = 8,
  effect.measure1 = "RR", effect.measure2 = "SHR")
tbl_merge(list(tbl_regression(fit_mixed, exponentiate = TRUE),
               tbl_regression(fit_mixed, exponentiate = TRUE, event = "event2")),
  tab_spanner = c("**Retinopathy**", "**Macrovascular complications**"))

## ----labels-------------------------------------------------------------------
tbl_regression(fit, exponentiate = TRUE, conf.level = fit$conf.int,
               label = list(fruitq1 ~ "Low fruit intake versus other intake"))

## ----export-regression--------------------------------------------------------
html_file <- tempfile(fileext = ".html")
gt::gtsave(as_gt(retinopathy_table), filename = html_file)

## ----export-regression-word, eval=reporting_ready && requireNamespace('flextable', quietly=TRUE)----
word_file <- tempfile(fileext = ".docx")
flextable::save_as_docx(as_flex_table(retinopathy_table), path = word_file)

