## ----include = FALSE----------------------------------------------------------
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>"
)

## ----setup, message=FALSE, warning=FALSE--------------------------------------
library(metalite.sl)
library(dplyr)

## ----out.width = "100%", out.height = "400px", echo = FALSE, fig.align = "center"----
knitr::include_graphics("pdf/exposure0histogram.pdf")

## -----------------------------------------------------------------------------
data("metalite_sl_adexsum")
adexsum <- metalite_sl_adexsum

## -----------------------------------------------------------------------------
plan <- metalite::plan(
  analysis = "exp_dur", population = "apat",
  observation = "apat", parameter = "expdur"
)

meta <- metalite::meta_adam(
  population = adexsum,
  observation = adexsum
) |>
  metalite::define_plan(plan) |>
  metalite::define_population(
    name = "apat",
    group = "TRTA",
    subset = quote(APERIOD == 1 & AVAL > 0)
  ) |>
  metalite::define_parameter(
    name = "expdur",
    subset = PARAMCD == "TRTDURD",
    var = "AVAL",
    label = "Exposure Duration (Days)",
    vargroup = "EXDURGR"
  ) |>
  metalite::define_analysis(
    name = "exp_dur",
    title = "Summary of Exposure Duration",
    label = "exposure duration table"
  ) |>
  metalite::meta_build()

## -----------------------------------------------------------------------------
outdata <- prepare_exp_duration(meta)
outdata

## -----------------------------------------------------------------------------
outdata$n[, 1:5]

## -----------------------------------------------------------------------------
charn <- data.frame(outdata$char_n[1])
head(charn[, 1:5], 6)

## -----------------------------------------------------------------------------
charp <- data.frame(outdata$char_prop[1])
head(charp[, 1:5], 6)

## -----------------------------------------------------------------------------
chars <- data.frame(outdata$char_n[1])
tail(chars[, 1:5], 8)

## -----------------------------------------------------------------------------
outdata <- meta |>
  prepare_exp_duration() |>
  extend_exp_duration(
    duration_category_list = list(c(1, NA), c(7, NA), c(28, NA), c(12 * 7, NA), c(24 * 7, NA)),
    duration_category_labels = c(">=1 day", ">=7 days", ">=28 days", ">=12 weeks", ">=24 weeks")
  )
outdata

## -----------------------------------------------------------------------------
all_stats <- bind_rows(outdata$char_stat_groups, .id = "duration_category")

all_stats

## ----out.width = "100%", out.height = "400px", echo = TRUE, fig.align = "center"----
outdata |>
  plotly_exp_duration(
    color = NULL,
    display = "n",
    display_total = TRUE,
    plot_group_label = "Treatment Group",
    plot_category_label = "Exposure Duration",
    hover_summary_var = c("mean", "min", "max"),
    width = 800,
    height = 400
  )

