The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

Getting started with gsDesignTune

This vignette demonstrates dependency-aware grid search over group sequential designs using gsDesignTune.

library(gsDesign)
library(gsDesignTune)

Basic designs with gsDesignTune()

gsDesignTune() wraps gsDesign::gsDesign() for tuning basic group sequential designs.

job <- gsDesignTune(
  k = 3,
  test.type = 2,
  alpha = 0.025,
  beta = 0.10,
  timing = tune_values(list(c(0.33, 0.67, 1), c(0.5, 0.75, 1))),
  upper = SpendingFamily$new(
    SpendingSpec$new(sfLDOF, par = tune_fixed(0)),
    SpendingSpec$new(sfHSD, par = tune_seq(-4, 4, length_out = 3))
  )
)

job$run(strategy = "grid", parallel = FALSE)
res <- job$results()
head(res)
#>   upper_setting       timing upper_fun upper_par config_id status error_message
#> 1  function.... 0.33, 0.....    sfLDOF         0         1     ok          <NA>
#> 2  function.... 0.5, 0.75, 1    sfLDOF         0         2     ok          <NA>
#> 3  function.... 0.33, 0.....     sfHSD        -4         3     ok          <NA>
#> 4  function.... 0.5, 0.75, 1     sfHSD        -4         4     ok          <NA>
#> 5  function.... 0.33, 0.....     sfHSD         0         5     ok          <NA>
#> 6  function.... 0.5, 0.75, 1     sfHSD         0         6     ok          <NA>
#>   warnings                        cache_key design_rds    call_args k test.type
#> 1     <NA> 2a02c8567abd8c7ed8822d4940901162       <NA> 3, 2, 0..... 3         2
#> 2     <NA> a9c397fd736584ab0260cd83ceaeba5e       <NA> 3, 2, 0..... 3         2
#> 3     <NA> e7580124f44920908f1d2135656f0ab1       <NA> 3, 2, 0..... 3         2
#> 4     <NA> f4451293194cac770d2ec4b1ee82d8ac       <NA> 3, 2, 0..... 3         2
#> 5     <NA> 6f382b0daa41a36567f87d7907c8596c       <NA> 3, 2, 0..... 3         2
#> 6     <NA> 6e4d4614c851b42a6d3f1d663bfab362       <NA> 3, 2, 0..... 3         2
#>   alpha beta          n_I final_n_I      upper_z      lower_z      upper_p
#> 1 0.025  0.1 0.333977....  1.012053 3.7307, .... -3.7307,.... 1e-04, 0....
#> 2 0.025  0.1 0.509137....  1.018275 2.9626, .... -2.9626,.... 0.0015, ....
#> 3 0.025  0.1 0.335043....  1.015284 3.0162, .... -3.0162,.... 0.0013, ....
#> 4 0.025  0.1 0.509227....  1.018456 2.75, 2..... -2.75, -.... 0.003, 0....
#> 5 0.025  0.1 0.365230....  1.106759 2.3977, .... -2.3977,.... 0.0082, ....
#> 6 0.025  0.1 0.555438....  1.110878 2.2414, .... -2.2414,.... 0.0125, ....
#>        lower_p power           en                               upper_name
#> 1 1e-04, 0....   0.9 1.007862.... Lan-DeMets O'Brien-Fleming approximation
#> 2 0.0015, ....   0.9 1.012586.... Lan-DeMets O'Brien-Fleming approximation
#> 3 0.0013, ....   0.9 1.010154....                        Hwang-Shih-DeCani
#> 4 0.003, 0....   0.9 1.012404....                        Hwang-Shih-DeCani
#> 5 0.0082, ....   0.9 1.088314....                        Hwang-Shih-DeCani
#> 6 0.0125, ....   0.9 1.093520....                        Hwang-Shih-DeCani
#>                                 lower_name bound_summary  final_n    max_n
#> 1 Lan-DeMets O'Brien-Fleming approximation  c("IA 1:.... 1.012053 1.012053
#> 2 Lan-DeMets O'Brien-Fleming approximation  c("IA 1:.... 1.018275 1.018275
#> 3                        Hwang-Shih-DeCani  c("IA 1:.... 1.015284 1.015284
#> 4                        Hwang-Shih-DeCani  c("IA 1:.... 1.018456 1.018456
#> 5                        Hwang-Shih-DeCani  c("IA 1:.... 1.106759 1.106759
#> 6                        Hwang-Shih-DeCani  c("IA 1:.... 1.110878 1.110878
#>   upper_z1 lower_z1
#> 1   3.7307  -3.7307
#> 2   2.9626  -2.9626
#> 3   3.0162  -3.0162
#> 4   2.7500  -2.7500
#> 5   2.3977  -2.3977
#> 6   2.2414  -2.2414

Ranking and filtering

best <- job$best("final_n", direction = "min")
head(best, 10)
#>   upper_setting       timing upper_fun upper_par config_id status error_message
#> 1  function.... 0.33, 0.....    sfLDOF         0         1     ok          <NA>
#> 3  function.... 0.33, 0.....     sfHSD        -4         3     ok          <NA>
#> 2  function.... 0.5, 0.75, 1    sfLDOF         0         2     ok          <NA>
#> 4  function.... 0.5, 0.75, 1     sfHSD        -4         4     ok          <NA>
#> 5  function.... 0.33, 0.....     sfHSD         0         5     ok          <NA>
#> 6  function.... 0.5, 0.75, 1     sfHSD         0         6     ok          <NA>
#> 8  function.... 0.5, 0.75, 1     sfHSD         4         8     ok          <NA>
#> 7  function.... 0.33, 0.....     sfHSD         4         7     ok          <NA>
#>   warnings                        cache_key design_rds    call_args k test.type
#> 1     <NA> 2a02c8567abd8c7ed8822d4940901162       <NA> 3, 2, 0..... 3         2
#> 3     <NA> e7580124f44920908f1d2135656f0ab1       <NA> 3, 2, 0..... 3         2
#> 2     <NA> a9c397fd736584ab0260cd83ceaeba5e       <NA> 3, 2, 0..... 3         2
#> 4     <NA> f4451293194cac770d2ec4b1ee82d8ac       <NA> 3, 2, 0..... 3         2
#> 5     <NA> 6f382b0daa41a36567f87d7907c8596c       <NA> 3, 2, 0..... 3         2
#> 6     <NA> 6e4d4614c851b42a6d3f1d663bfab362       <NA> 3, 2, 0..... 3         2
#> 8     <NA> e976042d0e8e2b27179997359fee7ab1       <NA> 3, 2, 0..... 3         2
#> 7     <NA> 92b57bf5daf6e42077127fba752ee177       <NA> 3, 2, 0..... 3         2
#>   alpha beta          n_I final_n_I      upper_z      lower_z      upper_p
#> 1 0.025  0.1 0.333977....  1.012053 3.7307, .... -3.7307,.... 1e-04, 0....
#> 3 0.025  0.1 0.335043....  1.015284 3.0162, .... -3.0162,.... 0.0013, ....
#> 2 0.025  0.1 0.509137....  1.018275 2.9626, .... -2.9626,.... 0.0015, ....
#> 4 0.025  0.1 0.509227....  1.018456 2.75, 2..... -2.75, -.... 0.003, 0....
#> 5 0.025  0.1 0.365230....  1.106759 2.3977, .... -2.3977,.... 0.0082, ....
#> 6 0.025  0.1 0.555438....  1.110878 2.2414, .... -2.2414,.... 0.0125, ....
#> 8 0.025  0.1 0.675309....  1.350620 2.0137, .... -2.0137,.... 0.022, 0....
#> 7 0.025  0.1 0.451412....  1.367918 2.0822, .... -2.0822,.... 0.0187, ....
#>        lower_p power           en                               upper_name
#> 1 1e-04, 0....   0.9 1.007862.... Lan-DeMets O'Brien-Fleming approximation
#> 3 0.0013, ....   0.9 1.010154....                        Hwang-Shih-DeCani
#> 2 0.0015, ....   0.9 1.012586.... Lan-DeMets O'Brien-Fleming approximation
#> 4 0.003, 0....   0.9 1.012404....                        Hwang-Shih-DeCani
#> 5 0.0082, ....   0.9 1.088314....                        Hwang-Shih-DeCani
#> 6 0.0125, ....   0.9 1.093520....                        Hwang-Shih-DeCani
#> 8 0.022, 0....   0.9 1.319407....                        Hwang-Shih-DeCani
#> 7 0.0187, ....   0.9 1.329142....                        Hwang-Shih-DeCani
#>                                 lower_name bound_summary  final_n    max_n
#> 1 Lan-DeMets O'Brien-Fleming approximation  c("IA 1:.... 1.012053 1.012053
#> 3                        Hwang-Shih-DeCani  c("IA 1:.... 1.015284 1.015284
#> 2 Lan-DeMets O'Brien-Fleming approximation  c("IA 1:.... 1.018275 1.018275
#> 4                        Hwang-Shih-DeCani  c("IA 1:.... 1.018456 1.018456
#> 5                        Hwang-Shih-DeCani  c("IA 1:.... 1.106759 1.106759
#> 6                        Hwang-Shih-DeCani  c("IA 1:.... 1.110878 1.110878
#> 8                        Hwang-Shih-DeCani  c("IA 1:.... 1.350620 1.350620
#> 7                        Hwang-Shih-DeCani  c("IA 1:.... 1.367918 1.367918
#>   upper_z1 lower_z1
#> 1   3.7307  -3.7307
#> 3   3.0162  -3.0162
#> 2   2.9626  -2.9626
#> 4   2.7500  -2.7500
#> 5   2.3977  -2.3977
#> 6   2.2414  -2.2414
#> 8   2.0137  -2.0137
#> 7   2.0822  -2.0822

Plot

job$plot(metric = "final_n", x = "upper_par", color = "upper_fun")

Survival designs with gsSurvTune()

gsSurvTune() wraps gsDesign::gsSurv() for tuning time-to-event designs.

job_surv <- gsSurvTune(
  k = 3,
  test.type = 4,
  alpha = 0.025,
  beta = 0.10,
  timing = tune_values(list(c(0.33, 0.67, 1), c(0.5, 0.75, 1))),
  hr = tune_seq(0.60, 0.75, length_out = 3),
  upper = SpendingFamily$new(
    SpendingSpec$new(sfLDOF, par = tune_fixed(0)),
    SpendingSpec$new(sfHSD, par = tune_seq(-4, 4, length_out = 3))
  ),
  lower = SpendingSpec$new(sfLDOF, par = tune_fixed(0)),
  lambdaC = log(2) / 6,
  eta = 0.01,
  gamma = c(2.5, 5, 7.5, 10),
  R = c(2, 2, 2, 6),
  T = 18,
  minfup = 6,
  ratio = 1
)

job_surv$run(strategy = "grid", parallel = FALSE)
res_surv <- job_surv$results()
head(res_surv)
#>   upper_setting lower_setting       timing    hr upper_fun upper_par lower_fun
#> 1  function....  function.... 0.33, 0..... 0.600    sfLDOF         0    sfLDOF
#> 2  function....  function.... 0.33, 0..... 0.675    sfLDOF         0    sfLDOF
#> 3  function....  function.... 0.33, 0..... 0.750    sfLDOF         0    sfLDOF
#> 4  function....  function.... 0.5, 0.75, 1 0.600    sfLDOF         0    sfLDOF
#> 5  function....  function.... 0.5, 0.75, 1 0.675    sfLDOF         0    sfLDOF
#> 6  function....  function.... 0.5, 0.75, 1 0.750    sfLDOF         0    sfLDOF
#>   lower_par config_id status error_message warnings
#> 1         0         1     ok          <NA>     <NA>
#> 2         0         2     ok          <NA>     <NA>
#> 3         0         3     ok          <NA>     <NA>
#> 4         0         4     ok          <NA>     <NA>
#> 5         0         5     ok          <NA>     <NA>
#> 6         0         6     ok          <NA>     <NA>
#>                          cache_key design_rds    call_args k test.type alpha
#> 1 5e919de024dfb2788159f8d1d5b4b299       <NA> 3, 4, 0..... 3         4 0.025
#> 2 5b94658197250fa81f222cd42981cee2       <NA> 3, 4, 0..... 3         4 0.025
#> 3 8585e7574c0938da43ca29335694d0ac       <NA> 3, 4, 0..... 3         4 0.025
#> 4 04219b7dccfa06033ebf8e07528d56c3       <NA> 3, 4, 0..... 3         4 0.025
#> 5 bc6aa57478df46ab3cc6c0a819c2fa26       <NA> 3, 4, 0..... 3         4 0.025
#> 6 9bc0588d4895878555a71a64d4fa7104       <NA> 3, 4, 0..... 3         4 0.025
#>   beta          n_I final_n_I      upper_z      lower_z      upper_p
#> 1  0.1 56.24907....  170.4517 3.7307, .... -0.719, .... 1e-04, 0....
#> 2  0.1 95.02760....  287.9624 3.7307, .... -0.719, .... 1e-04, 0....
#> 3  0.1 177.4604....  537.7591 3.7307, .... -0.719, .... 1e-04, 0....
#> 4  0.1 87.06008....  174.1202 2.9626, .... 0.3316, .... 0.0015, ....
#> 5  0.1 147.0799....  294.1598 2.9626, .... 0.3316, .... 0.0015, ....
#> 6  0.1 274.6662....  549.3326 2.9626, .... 0.3316, .... 0.0015, ....
#>        lower_p power           en                               upper_name
#> 1 0.7639, ....   0.9 108.7925.... Lan-DeMets O'Brien-Fleming approximation
#> 2 0.7639, ....   0.9 183.7948.... Lan-DeMets O'Brien-Fleming approximation
#> 3 0.7639, ....   0.9 343.2300.... Lan-DeMets O'Brien-Fleming approximation
#> 4 0.3701, ....   0.9 106.7777.... Lan-DeMets O'Brien-Fleming approximation
#> 5 0.3701, ....   0.9 180.3910.... Lan-DeMets O'Brien-Fleming approximation
#> 6 0.3701, ....   0.9 336.8735.... Lan-DeMets O'Brien-Fleming approximation
#>                                 lower_name bound_summary final_events
#> 1 Lan-DeMets O'Brien-Fleming approximation  c("IA 1:....     170.4517
#> 2 Lan-DeMets O'Brien-Fleming approximation  c("IA 1:....     287.9624
#> 3 Lan-DeMets O'Brien-Fleming approximation  c("IA 1:....     537.7591
#> 4 Lan-DeMets O'Brien-Fleming approximation  c("IA 1:....     174.1202
#> 5 Lan-DeMets O'Brien-Fleming approximation  c("IA 1:....     294.1598
#> 6 Lan-DeMets O'Brien-Fleming approximation  c("IA 1:....     549.3326
#>   max_events      n_total final_n_total analysis_time upper_z1 lower_z1
#> 1   170.4517 216, 296....           296  9.582183....   3.7307  -0.7190
#> 2   287.9624 352, 482....           482  9.554795....   3.7307  -0.7190
#> 3   537.7591 634, 874....           874  9.524268....   3.7307  -0.7190
#> 4   174.1202 284, 302....           302  11.48078....   2.9626   0.3316
#> 5   294.1598 462, 492....           492  11.45171....   2.9626   0.3316
#> 6   549.3326 834, 892....           892  11.41939....   2.9626   0.3316

Calendar-timed analyses with gsSurvCalendarTune()

gsSurvCalendarTune() is similar to gsSurvTune(), but you specify planned calendar times of analyses via calendarTime instead of information timing.

job_cal <- gsSurvCalendarTune(
  test.type = 4,
  alpha = 0.025,
  beta = 0.10,
  calendarTime = tune_values(list(c(12, 24, 36), c(9, 18, 27))),
  spending = tune_choice("information", "calendar"),
  hr = tune_seq(0.60, 0.75, length_out = 3),
  upper = SpendingFamily$new(
    SpendingSpec$new(sfLDOF, par = tune_fixed(0)),
    SpendingSpec$new(sfHSD, par = tune_seq(-4, 4, length_out = 3))
  ),
  lower = SpendingSpec$new(sfLDOF, par = tune_fixed(0)),
  lambdaC = log(2) / 6,
  eta = 0.01,
  gamma = c(2.5, 5, 7.5, 10),
  R = c(2, 2, 2, 6),
  minfup = 18,
  ratio = 1
)

job_cal$run(strategy = "grid", parallel = FALSE)
res_cal <- job_cal$results()
head(res_cal)
#>   upper_setting lower_setting calendarTime    spending    hr upper_fun
#> 1  function....  function....   12, 24, 36 information 0.600    sfLDOF
#> 2  function....  function....   12, 24, 36 information 0.675    sfLDOF
#> 3  function....  function....   12, 24, 36 information 0.750    sfLDOF
#> 4  function....  function....   12, 24, 36    calendar 0.600    sfLDOF
#> 5  function....  function....   12, 24, 36    calendar 0.675    sfLDOF
#> 6  function....  function....   12, 24, 36    calendar 0.750    sfLDOF
#>   upper_par lower_fun lower_par config_id status error_message warnings
#> 1         0    sfLDOF         0         1     ok          <NA>     <NA>
#> 2         0    sfLDOF         0         2     ok          <NA>     <NA>
#> 3         0    sfLDOF         0         3     ok          <NA>     <NA>
#> 4         0    sfLDOF         0         4     ok          <NA>     <NA>
#> 5         0    sfLDOF         0         5     ok          <NA>     <NA>
#> 6         0    sfLDOF         0         6     ok          <NA>     <NA>
#>                          cache_key design_rds    call_args k test.type alpha
#> 1 04ceef8a37465aeb1941067d8d34f1f8       <NA> 4, 0.025.... 3         4 0.025
#> 2 5f4af16b3eda4ea07df499f2cb2505d6       <NA> 4, 0.025.... 3         4 0.025
#> 3 5fa33bd69dc3aa025743081af7ada6f1       <NA> 4, 0.025.... 3         4 0.025
#> 4 7e58415c5a24209eb2796b503e708c55       <NA> 4, 0.025.... 3         4 0.025
#> 5 24143227e497c5aaffb5eda95e125273       <NA> 4, 0.025.... 3         4 0.025
#> 6 87f2aed2d7ee96bba1352882f58e9c44       <NA> 4, 0.025.... 3         4 0.025
#>   beta       timing          n_I final_n_I      upper_z      lower_z
#> 1  0.1 0.234953.... 40.57744....  172.7038 4.4783, .... -1.5645,....
#> 2  0.1 0.239261.... 70.11502....  293.0477 4.4352, .... -1.5165,....
#> 3  0.1 0.243794.... 133.8101....  548.8641 4.3911, .... -1.467, ....
#> 4  0.1 0.234953.... 38.77267....  165.0225 3.7103, .... -1.0234,....
#> 5  0.1 0.239261.... 66.81872....  279.2707 3.7103, .... -1.0102,....
#> 6  0.1 0.243794.... 127.1925....  521.7201 3.7103, .... -0.9963,....
#>        upper_p      lower_p power           en
#> 1 0, 0.011.... 0.9412, ....   0.9 132.7343....
#> 2 0, 0.012.... 0.9353, ....   0.9 226.1005....
#> 3 0, 0.012.... 0.9288, ....   0.9 424.9595....
#> 4 1e-04, 0.... 0.8469, ....   0.9 119.9537....
#> 5 1e-04, 0.... 0.8438, ....   0.9 204.1470....
#> 6 1e-04, 0.... 0.8404, ....   0.9 383.4977....
#>                                 upper_name
#> 1 Lan-DeMets O'Brien-Fleming approximation
#> 2 Lan-DeMets O'Brien-Fleming approximation
#> 3 Lan-DeMets O'Brien-Fleming approximation
#> 4 Lan-DeMets O'Brien-Fleming approximation
#> 5 Lan-DeMets O'Brien-Fleming approximation
#> 6 Lan-DeMets O'Brien-Fleming approximation
#>                                 lower_name bound_summary final_events
#> 1 Lan-DeMets O'Brien-Fleming approximation  c("IA 1:....     172.7038
#> 2 Lan-DeMets O'Brien-Fleming approximation  c("IA 1:....     293.0477
#> 3 Lan-DeMets O'Brien-Fleming approximation  c("IA 1:....     548.8641
#> 4 Lan-DeMets O'Brien-Fleming approximation  c("IA 1:....     165.0225
#> 5 Lan-DeMets O'Brien-Fleming approximation  c("IA 1:....     279.2707
#> 6 Lan-DeMets O'Brien-Fleming approximation  c("IA 1:....     521.7201
#>   max_events      n_total final_n_total analysis_time upper_z1 lower_z1
#> 1   172.7038 128, 212....           212    12, 24, 36   4.4783  -1.5645
#> 2   293.0477 212, 354....           354    12, 24, 36   4.4352  -1.5165
#> 3   548.8641 390, 650....           650    12, 24, 36   4.3911  -1.4670
#> 4   165.0225 122, 204....           204    12, 24, 36   3.7103  -1.0234
#> 5   279.2707 202, 336....           336    12, 24, 36   3.7103  -1.0102
#> 6   521.7201 372, 618....           618    12, 24, 36   3.7103  -0.9963

Multi-scenario exploration

best_surv <- job_surv$best("final_events", direction = "min")
head(best_surv, 10)
#>    upper_setting lower_setting       timing    hr upper_fun upper_par lower_fun
#> 1   function....  function.... 0.33, 0..... 0.600    sfLDOF         0    sfLDOF
#> 7   function....  function.... 0.33, 0..... 0.600     sfHSD        -4    sfLDOF
#> 4   function....  function.... 0.5, 0.75, 1 0.600    sfLDOF         0    sfLDOF
#> 10  function....  function.... 0.5, 0.75, 1 0.600     sfHSD        -4    sfLDOF
#> 13  function....  function.... 0.33, 0..... 0.600     sfHSD         0    sfLDOF
#> 16  function....  function.... 0.5, 0.75, 1 0.600     sfHSD         0    sfLDOF
#> 22  function....  function.... 0.5, 0.75, 1 0.600     sfHSD         4    sfLDOF
#> 19  function....  function.... 0.33, 0..... 0.600     sfHSD         4    sfLDOF
#> 2   function....  function.... 0.33, 0..... 0.675    sfLDOF         0    sfLDOF
#> 8   function....  function.... 0.33, 0..... 0.675     sfHSD        -4    sfLDOF
#>    lower_par config_id status error_message warnings
#> 1          0         1     ok          <NA>     <NA>
#> 7          0         7     ok          <NA>     <NA>
#> 4          0         4     ok          <NA>     <NA>
#> 10         0        10     ok          <NA>     <NA>
#> 13         0        13     ok          <NA>     <NA>
#> 16         0        16     ok          <NA>     <NA>
#> 22         0        22     ok          <NA>     <NA>
#> 19         0        19     ok          <NA>     <NA>
#> 2          0         2     ok          <NA>     <NA>
#> 8          0         8     ok          <NA>     <NA>
#>                           cache_key design_rds    call_args k test.type alpha
#> 1  5e919de024dfb2788159f8d1d5b4b299       <NA> 3, 4, 0..... 3         4 0.025
#> 7  d7889d921ed14ae812e3ed0d2cf3b501       <NA> 3, 4, 0..... 3         4 0.025
#> 4  04219b7dccfa06033ebf8e07528d56c3       <NA> 3, 4, 0..... 3         4 0.025
#> 10 e7314dba5cf8f0e027bfce428760e159       <NA> 3, 4, 0..... 3         4 0.025
#> 13 089bc8d1fee469d6313ea8d01c3918e3       <NA> 3, 4, 0..... 3         4 0.025
#> 16 94a2881403a82b791e8152b97005a523       <NA> 3, 4, 0..... 3         4 0.025
#> 22 4189ddae3301e4cacf176e70e82f2f1c       <NA> 3, 4, 0..... 3         4 0.025
#> 19 6b85b2a65593a3ba4370d310e1ffac77       <NA> 3, 4, 0..... 3         4 0.025
#> 2  5b94658197250fa81f222cd42981cee2       <NA> 3, 4, 0..... 3         4 0.025
#> 8  25cc8f2d4d112a17eef1b8d0b6ab8c66       <NA> 3, 4, 0..... 3         4 0.025
#>    beta          n_I final_n_I      upper_z      lower_z      upper_p
#> 1   0.1 56.24907....  170.4517 3.7307, .... -0.719, .... 1e-04, 0....
#> 7   0.1 56.42214....  170.9762 3.0162, .... -0.7161,.... 0.0013, ....
#> 4   0.1 87.06008....  174.1202 2.9626, .... 0.3316, .... 0.0015, ....
#> 10  0.1 87.11271....  174.2254 2.75, 2..... 0.3323, .... 0.003, 0....
#> 13  0.1 61.09307....  185.1305 2.3977, .... -0.6382,.... 0.0082, ....
#> 16  0.1 93.90369....  187.8074 2.2414, .... 0.4235, .... 0.0125, ....
#> 22  0.1 111.9806....  223.9612 2.0137, .... 0.6515, .... 0.022, 0....
#> 19  0.1 74.60758....  226.0836 2.0822, .... -0.4282,.... 0.0187, ....
#> 2   0.1 95.02760....  287.9624 3.7307, .... -0.719, .... 1e-04, 0....
#> 8   0.1 95.31999....  288.8485 3.0162, .... -0.7161,.... 0.0013, ....
#>         lower_p     power           en                               upper_name
#> 1  0.7639, .... 0.9000000 108.7925.... Lan-DeMets O'Brien-Fleming approximation
#> 7  0.763, 0.... 0.9000000 108.9419....                        Hwang-Shih-DeCani
#> 4  0.3701, .... 0.9000000 106.7777.... Lan-DeMets O'Brien-Fleming approximation
#> 10 0.3698, .... 0.9000000 106.7939....                        Hwang-Shih-DeCani
#> 13 0.7383, .... 0.9000000 113.8644....                        Hwang-Shih-DeCani
#> 16 0.336, 0.... 0.9000000 111.8445....                        Hwang-Shih-DeCani
#> 22 0.2574, .... 0.9000000 126.5371....                        Hwang-Shih-DeCani
#> 19 0.6658, .... 0.8999999 128.5347....                        Hwang-Shih-DeCani
#> 2  0.7639, .... 0.9000000 183.7948.... Lan-DeMets O'Brien-Fleming approximation
#> 8  0.763, 0.... 0.9000000 184.0472....                        Hwang-Shih-DeCani
#>                                  lower_name bound_summary final_events
#> 1  Lan-DeMets O'Brien-Fleming approximation  c("IA 1:....     170.4517
#> 7  Lan-DeMets O'Brien-Fleming approximation  c("IA 1:....     170.9762
#> 4  Lan-DeMets O'Brien-Fleming approximation  c("IA 1:....     174.1202
#> 10 Lan-DeMets O'Brien-Fleming approximation  c("IA 1:....     174.2254
#> 13 Lan-DeMets O'Brien-Fleming approximation  c("IA 1:....     185.1305
#> 16 Lan-DeMets O'Brien-Fleming approximation  c("IA 1:....     187.8074
#> 22 Lan-DeMets O'Brien-Fleming approximation  c("IA 1:....     223.9612
#> 19 Lan-DeMets O'Brien-Fleming approximation  c("IA 1:....     226.0836
#> 2  Lan-DeMets O'Brien-Fleming approximation  c("IA 1:....     287.9624
#> 8  Lan-DeMets O'Brien-Fleming approximation  c("IA 1:....     288.8485
#>    max_events      n_total final_n_total analysis_time upper_z1 lower_z1
#> 1    170.4517 216, 296....           296  9.582183....   3.7307  -0.7190
#> 7    170.9762 218, 296....           296  9.582183....   3.0162  -0.7161
#> 4    174.1202 284, 302....           302  11.48078....   2.9626   0.3316
#> 10   174.2254 284, 302....           302  11.48078....   2.7500   0.3323
#> 13   185.1305 234, 320....           320  9.582183....   2.3977  -0.6382
#> 16   187.8074 306, 326....           326  11.48078....   2.2414   0.4235
#> 22   223.9612 366, 388....           388  11.48078....   2.0137   0.6515
#> 19   226.0836 286, 392....           392  9.582183....   2.0822  -0.4282
#> 2    287.9624 352, 482....           482  9.554795....   3.7307  -0.7190
#> 8    288.8485 352, 484....           484  9.554795....   3.0162  -0.7161
job_surv$plot(metric = "final_events", x = "hr", color = "upper_fun")

Export a report

report_path <- tempfile(fileext = ".html")
job_surv$report(report_path)
report_path
#> [1] "/var/folders/f2/bgpmhwqs3k9g88gtrfxjf4rh0000gn/T//RtmpFH758y/file24703065ee2d.html"

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.