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

## ----setup--------------------------------------------------------------------
library(testflow)

## ----eval = FALSE-------------------------------------------------------------
# sample_size(
#   endpoint = c("continuous", "binary", "survival", "ordinal"),
#   design = c("parallel", "paired", "repeated"),
#   objective = c("superiority", "noninferiority", "equivalence"),
#   ...
# )

## -----------------------------------------------------------------------------
parallel_ss <- sample_size_continuous(
  design = "parallel",
  objective = "superiority",
  delta = 5,
  sd = 10,
  alpha = 0.05,
  power = 0.90
)
parallel_ss

## -----------------------------------------------------------------------------
paired_ss <- sample_size_continuous(
  design = "paired",
  objective = "superiority",
  delta = 5,
  sd_diff = 10,
  alpha = 0.05,
  power = 0.90
)
paired_ss
plot(paired_ss, type = "curve")

## -----------------------------------------------------------------------------
repeated_ss <- sample_size_continuous(
  design = "repeated",
  n_time = 4,
  correlation = 0.5,
  objective = "superiority",
  delta = 5,
  sd_diff = 10,
  alpha = 0.05,
  power = 0.90
)
repeated_ss

## -----------------------------------------------------------------------------
sample_size_continuous(
  design = "parallel",
  objective = "noninferiority",
  delta = 2,
  expected_difference = 0.5,
  sd = 10,
  alpha = 0.025,
  power = 0.90
)

sample_size_continuous(
  design = "parallel",
  objective = "equivalence",
  delta = 4,
  expected_difference = 0,
  sd = 10,
  alpha = 0.05,
  power = 0.90
)

## -----------------------------------------------------------------------------
sample_size_binary(
  design = "parallel",
  objective = "superiority",
  p1 = 0.4,
  p2 = 0.25,
  method = "pooled",
  alpha = 0.05,
  power = 0.90
)

## -----------------------------------------------------------------------------
paired_binary_ss <- sample_size_binary(
  design = "paired",
  objective = "superiority",
  p10 = 0.2,
  p01 = 0.1,
  alpha = 0.05,
  power = 0.90
)
paired_binary_ss

## -----------------------------------------------------------------------------
sample_size_binary(
  design = "parallel",
  objective = "equivalence",
  p1 = 0.3,
  p2 = 0.3,
  margin = 0.15,
  allocation = 2,
  alpha = 0.05,
  power = 0.90
)

## -----------------------------------------------------------------------------
survival_ss <- sample_size_survival(
  hr = 0.7,
  survival_a = 0.8,
  survival_b = 0.7,
  alpha = 0.05,
  power = 0.90
)
survival_ss

## -----------------------------------------------------------------------------
accrual_ss <- sample_size_survival(
  hr = 0.7,
  survival_a = 0.8,
  survival_b = 0.7,
  alpha = 0.05,
  power = 0.90,
  accrual_duration = 12,
  follow_up = 24
)
accrual_ss

## -----------------------------------------------------------------------------
ordinal_ss <- sample_size_ordinal(
  p_superiority = 0.6,
  alpha = 0.05,
  power = 0.90
)
ordinal_ss

## -----------------------------------------------------------------------------
be_ss <- sample_size_bioequivalence(
  design = "crossover",
  gmr = 0.95,
  cv_within = 0.30,
  alpha = 0.05,
  power = 0.90
)
be_ss

## -----------------------------------------------------------------------------
sample_size_precision(
  endpoint = "continuous",
  design = "one_sample",
  width = 2,
  sd = 10,
  alpha = 0.05
)

sample_size_precision(
  endpoint = "binary",
  design = "two_sample",
  width = 0.08,
  p1 = 0.4,
  p2 = 0.3,
  alpha = 0.05
)

## -----------------------------------------------------------------------------
parallel_ss <- sample_size_continuous(
  design = "parallel", objective = "superiority",
  delta = 5, sd = 10, alpha = 0.05, power = 0.90
)
sample_size_cluster_adjust(unname(parallel_ss$n_adjusted["A"]), m = 20, rho = 0.02)

## -----------------------------------------------------------------------------
sample_size_adjust_dropout(100, dropout = 0.15)

## -----------------------------------------------------------------------------
report(paired_ss)
as_tibble(paired_ss)

