## -----------------------------------------------------------------------------
#| message: false
library(VisualizeSimon2Stage)
library(clinfun)
library(flextable)
library(ggplot2)
## -----------------------------------------------------------------------------
#| echo: false
library(knitr) # for tables in this vignette
#options(mc.cores = 1L) # for CRAN submission
## -----------------------------------------------------------------------------
#| echo: false
#| results: asis
c(
'[|>](https://search.r-project.org/R/refmans/base/html/pipeOp.html)', 'Forward pipe operator introduced in `R` 4.1.0',
'`$`', '[Extract](https://search.r-project.org/R/refmans/base/html/Extract.html) parts of an object',
'[`binom`](https://search.r-project.org/R/refmans/stats/html/Binomial.html)', '[Binomial](https://en.wikipedia.org/wiki/Binomial_distribution) density and distribution',
'`CRAN`, `R`', '[The Comprehensive R Archive Network](https://cran.r-project.org)',
'[`class`](https://search.r-project.org/R/refmans/base/html/class.html)', 'Object class',
'[`flextable`](https://search.r-project.org/CRAN/refmans/flextable/html/flextable.html)', 'Flexible tables',
'`PASS`', 'Power Analysis & Sample Size, ',
'`PET`', 'Probability of early termination',
'[`ph2simon`](https://search.r-project.org/CRAN/refmans/clinfun/html/ph2simon.html)', 'Simon\'s 2-stage Phase II design',
'`S3`, `generic`, [`methods`](https://search.r-project.org/R/refmans/utils/html/methods.html)', '`S3` object oriented system, [`UseMethod`](https://search.r-project.org/R/refmans/base/html/UseMethod.html); [`getS3method`](https://search.r-project.org/R/refmans/utils/html/getS3method.html); ',
'`S4`, `generic`, `methods`', '`S4` object oriented system, [`isS4`](https://search.r-project.org/R/refmans/base/html/isS4.html); [`setClass`](https://search.r-project.org/R/refmans/methods/html/setClass.html); [`getMethod`](https://search.r-project.org/R/refmans/methods/html/getMethod.html); ',
'[`search`](https://search.r-project.org/R/refmans/base/html/search.html)', 'Search path',
'[`seed`](https://search.r-project.org/R/refmans/base/html/Random.html)', 'Random number generation seed'
) |>
matrix(nrow = 2L, dimnames = list(c('Term / Abbreviation', 'Description'), NULL)) |>
t.default() |>
as.data.frame.matrix() |>
kable()
## -----------------------------------------------------------------------------
(x = ph2simon(pu = .2, pa = .4, ep1 = .05, ep2 = .1))
## -----------------------------------------------------------------------------
x |> ph2simon4(type = 'all')
## -----------------------------------------------------------------------------
x |> simon_pr(prob = c(.2, .3, .4)) |> as_flextable()
## -----------------------------------------------------------------------------
x |> ph2simon4() |> simon_pr(prob = c(.2, .3, .4)) |> as_flextable()
## -----------------------------------------------------------------------------
simon_pr.ph2simon4(prob = c(.2, .3, .4), r1 = 5L, n1 = 24L, r = 13L, n = 45L) |>
as_flextable()
## -----------------------------------------------------------------------------
#| fig-width: 5
x |> autoplot(type = 'optimal')
## -----------------------------------------------------------------------------
#| fig-width: 5
x |> ph2simon4(type = 'optimal') |> autoplot()
## -----------------------------------------------------------------------------
#| fig-width: 5
autoplot.ph2simon4(pu = .2, pa = .4, r1 = 4L, n1 = 19L, r = 15L, n = 54L, type = 'optimal')
## -----------------------------------------------------------------------------
set.seed(15); s = x |> r_simon(R = 1e4L, prob = .3, type = 'optimal')
## -----------------------------------------------------------------------------
set.seed(15); s1 = x |> ph2simon4(type = 'optimal') |> r_simon(R = 1e4L, prob = .3)
stopifnot(identical(s, s1))
## -----------------------------------------------------------------------------
set.seed(15); s2 = r_simon.ph2simon4(R = 1e4L, prob = .3, r1 = 4L, n1 = 19L, r = 15L, n = 54L)
stopifnot(identical(s, s2))
## -----------------------------------------------------------------------------
set.seed(31); x |> r_simon(R = 1e4L, prob = .2) |>
attr(which = 'dx', exact = TRUE) |>
as_flextable() |> set_caption(caption = 'pu = .2')
## -----------------------------------------------------------------------------
set.seed(24); x |> r_simon(R = 1e4L, prob = .4) |>
attr(which = 'dx', exact = TRUE) |>
as_flextable() |> set_caption(caption = 'pa = .4')
## -----------------------------------------------------------------------------
#| eval: false
#| echo: false
#| results: hide
# summary(x)
# summary(x, type = 'all')
## -----------------------------------------------------------------------------
p = c(A = .3, B = .2, C = .15)
## -----------------------------------------------------------------------------
#| fig-width: 5
set.seed(52); x |> simon_oc(prob = p, R = 1e4L, type = 'optimal')
## -----------------------------------------------------------------------------
#| fig-width: 5
set.seed(52); x |> ph2simon4(type = 'optimal') |> simon_oc(prob = p, R = 1e4L)
## -----------------------------------------------------------------------------
#| fig-width: 5
set.seed(52); simon_oc.ph2simon4(prob = p, R = 1e4L, r1 = 4L, n1 = 19L, r = 15L, n = 54L)