Last updated on 2026-10-17 04:51:42 CEST.
| Flavor | Version | Tinstall | Tcheck | Ttotal | Status | Flags |
|---|---|---|---|---|---|---|
| r-devel-linux-x86_64-debian-clang | 1.0.0 | 26.64 | 539.10 | 565.74 | OK | |
| r-devel-linux-x86_64-debian-gcc | 1.0.0 | 18.83 | 373.81 | 392.64 | OK | |
| r-devel-linux-x86_64-fedora-clang | 1.0.0 | 20.00 | 352.05 | 372.05 | OK | |
| r-devel-linux-x86_64-fedora-gcc | 1.0.0 | 20.00 | 362.93 | 382.93 | OK | |
| r-devel-windows-x86_64 | 1.0.0 | 41.00 | 516.00 | 557.00 | OK | |
| r-patched-linux-x86_64 | 1.0.0 | 27.43 | 522.46 | 549.89 | OK | |
| r-release-linux-x86_64 | 1.0.0 | 24.39 | 523.17 | 547.56 | OK | |
| r-release-macos-arm64 | 1.0.0 | 6.00 | 96.00 | 102.00 | OK | |
| r-release-macos-x86_64 | 1.0.0 | 20.00 | 473.00 | 493.00 | OK | |
| r-release-windows-x86_64 | 1.0.0 | 44.00 | 437.00 | 481.00 | OK | |
| r-oldrel-macos-arm64 | 1.0.0 | 8.00 | 87.00 | 95.00 | ERROR | |
| r-oldrel-macos-x86_64 | 1.0.0 | 19.00 | 406.00 | 425.00 | OK | |
| r-oldrel-windows-x86_64 | 1.0.0 | 52.00 | 587.00 | 639.00 | OK |
Version: 1.0.0
Check: re-building of vignette outputs
Result: ERROR
Error(s) in re-building vignettes:
--- re-building ‘advent.Rmd’ using rmarkdown
*** caught segfault ***
address 0x110, cause 'invalid permissions'
Traceback:
1: impute_predictive_arm(time = rep.int(0, length(future_treatment)), hazards = treatment_hazards, random_input = random_inputs$future_treatment, end_of_study = end_of_study, cutpoints = cutpoints, binary_imputation = binary_imputation)
2: fill_predictive_imputations(imputations = future, rows = future_treatment, values = impute_predictive_arm(time = rep.int(0, length(future_treatment)), hazards = treatment_hazards, random_input = random_inputs$future_treatment, end_of_study = end_of_study, cutpoints = cutpoints, binary_imputation = binary_imputation))
3: impute_predictive_draws(data_in = data_interim, hazards = post_lambda, end_of_study = end_of_study, cutpoints = cutpoints, single_arm = single_arm, binary_imputation = predictive_binary_imputation, check_futility = check_futility)
4: evaluate_interim_decision(data_interim = data_interim, look = i, planned_N = analysis_at_enrollnumber[i], calendar_time = look_time, active_followup = active_followup_at(data_total, look_time), end_of_study = end_of_study, rmst_tau = rmst_tau, cutpoints = cutpoints, single_arm = single_arm, prior_surv = prior_surv, prior_surv_final = prior_surv_final, prior_bin = prior_bin, bin_method = bin_method, alternative = alternative, h0 = h0, Fn = Fn[i], Sn = Sn[i], prob_ha = prob_ha, N_impute = N_impute, N_mcmc = N_mcmc, mc_conf_level = mc_conf_level, empty_interval = empty_interval, method = method, binary_imputation = binary_imputation, check_futility = check_futility, Qn = Qn[i])
5: survival_adapt_fn(hazard_treatment = hazard_treatment, hazard_control = hazard_control, cutpoints = cutpoints, N_total = N_total, lambda = lambda, lambda_time = lambda_time, interim_look = interim_look, end_of_study = end_of_study, prior_surv = prior_surv, prior_bin = prior_bin, bin_method = bin_method, binary_imputation = binary_imputation, block = block, rand_ratio = rand_ratio, prop_loss = prop_loss, alternative = alternative, h0 = h0, Fn = Fn, Sn = Sn, Qn = Qn, prob_ha = prob_ha, N_impute = N_impute, N_mcmc = N_mcmc, mc_conf_level = mc_conf_level, method = method, imputed_final = imputed_final, empty_interval = empty_interval, return_trace = return_trace, prior_surv_final = prior_surv_final, generation_cutpoints = generation_cutpoints, rmst_tau = rmst_tau)
6: doTryCatch(return(expr), name, parentenv, handler)
7: tryCatchOne(expr, names, parentenv, handlers[[1L]])
8: tryCatchList(expr, classes, parentenv, handlers)
9: tryCatch({ if (!is.null(trial_streams)) { assign(".Random.seed", trial_streams[[x]], envir = .GlobalEnv) } result <- survival_adapt_fn(hazard_treatment = hazard_treatment, hazard_control = hazard_control, cutpoints = cutpoints, N_total = N_total, lambda = lambda, lambda_time = lambda_time, interim_look = interim_look, end_of_study = end_of_study, prior_surv = prior_surv, prior_bin = prior_bin, bin_method = bin_method, binary_imputation = binary_imputation, block = block, rand_ratio = rand_ratio, prop_loss = prop_loss, alternative = alternative, h0 = h0, Fn = Fn, Sn = Sn, Qn = Qn, prob_ha = prob_ha, N_impute = N_impute, N_mcmc = N_mcmc, mc_conf_level = mc_conf_level, method = method, imputed_final = imputed_final, empty_interval = empty_interval, return_trace = return_trace, prior_surv_final = prior_surv_final, generation_cutpoints = generation_cutpoints, rmst_tau = rmst_tau) attr(result, "arguments") <- NULL if (inherits(result, "goldilocks_trial")) { attr(result$summary, "arguments") <- NULL } list(trial = as.integer(x), result = result)}, error = function(error) { list(trial = as.integer(x), result = NULL, error_class = class(error)[1L], message = conditionMessage(error))})
10: FUN(X[[i]], ...)
11: lapply(X = S, FUN = FUN, ...)
12: doTryCatch(return(expr), name, parentenv, handler)
13: tryCatchOne(expr, names, parentenv, handlers[[1L]])
14: tryCatchList(expr, classes, parentenv, handlers)
15: tryCatch(expr, error = function(e) { call <- conditionCall(e) if (!is.null(call)) { if (identical(call[[1L]], quote(doTryCatch))) call <- sys.call(-4L) dcall <- deparse(call, nlines = 1L) prefix <- paste("Error in", dcall, ": ") LONG <- 75L sm <- strsplit(conditionMessage(e), "\n")[[1L]] w <- 14L + nchar(dcall, type = "w") + nchar(sm[1L], type = "w") if (is.na(w)) w <- 14L + nchar(dcall, type = "b") + nchar(sm[1L], type = "b") if (w > LONG) prefix <- paste0(prefix, "\n ") } else prefix <- "Error : " msg <- paste0(prefix, conditionMessage(e), "\n") .Internal(seterrmessage(msg[1L])) if (!silent && isTRUE(getOption("show.error.messages"))) { cat(msg, file = outFile) .Internal(printDeferredWarnings()) } invisible(structure(msg, class = "try-error", condition = e))})
16: try(lapply(X = S, FUN = FUN, ...), silent = TRUE)
17: sendMaster(try(lapply(X = S, FUN = FUN, ...), silent = TRUE))
18: FUN(X[[i]], ...)
19: lapply(seq_len(cores), inner.do)
20: mclapply(X, FUN, ..., mc.cores = mc.cores, mc.preschedule = mc.preschedule, mc.set.seed = mc.set.seed, mc.cleanup = mc.cleanup, mc.allow.recursive = mc.allow.recursive)
21: pbmclapply(trial_index, survival_adapt_wrapper, mc.cores = workers)
22: (function (hazard_treatment, hazard_control = NULL, cutpoints = NULL, N_total, lambda = 0.3, lambda_time = NULL, interim_look = NULL, end_of_study, prior_surv = c(0.1, 0.1), prior_bin = c(1, 1), bin_method = "mc", block = 2, rand_ratio = c(control = 1, treatment = 1), prop_loss = 0, alternative = "greater", h0 = 0, Fn = 0.05, Sn = 0.9, prob_ha = 0.95, N_impute = 500, N_mcmc = 1000, mc_conf_level = 0.95, N_trials = 10, method = "logrank", imputed_final = FALSE, empty_interval = c("prior", "propagate", "error"), return_trace = FALSE, ncores = 1L, backend = c("auto", "fork", "psock", "sequential"), seed = NULL, binary_imputation = c("event-time", "bernoulli"), prior_surv_final = prior_surv, generation_cutpoints = cutpoints, Qn = 1, rmst_tau = end_of_study) { Call <- match.call() Arguments <- capture_arguments(sim_trials, environment()) method <- normalize_analysis_method(method) Arguments$method <- method empty_interval <- match.arg(empty_interval) binary_imputation <- match.arg(binary_imputation) backend <- match.arg(backend) Arguments$empty_interval <- empty_interval Arguments$binary_imputation <- binary_imputation Arguments$backend <- backend requested_backend <- backend caller_rng_kind <- RNGkind() validate_positive_integer_scalar(N_trials, "N_trials") single_arm <- is.null(hazard_control) if (!single_arm) { rand_ratio <- validate_randomization_args(N_total, block, rand_ratio, allocation_name = "rand_ratio") Arguments$rand_ratio <- rand_ratio } prop_loss <- normalize_prop_loss(prop_loss, single_arm = single_arm) Arguments$prop_loss <- prop_loss validate_logical_scalar(return_trace, "return_trace") validate_positive_integer_scalar(N_impute, "N_impute") validate_positive_integer_scalar(N_mcmc, "N_mcmc") validate_single_probability(mc_conf_level, "mc_conf_level", upper_open = TRUE) if (mc_conf_level <= 0.5) { stop("'mc_conf_level' must be greater than 0.5 and less than 1") } validate_final_imputation(method, imputed_final, has_missing_outcomes = any(prop_loss > 0), N_impute = N_impute) if (identical(method, "rmst")) { validate_endpoint_time(end_of_study, cutpoints, "end_of_study") validate_rmst_args(rmst_tau, end_of_study, h0) validate_analysis_configuration(method, alternative, is.null(hazard_control), imputed_final) } validate_positive_integer_scalar(ncores, "ncores") execution <- resolve_sim_execution(backend = backend, ncores = ncores, N_trials = N_trials) backend <- execution$backend workers <- execution$workers stream_seed <- NULL if (!is.null(seed)) { if (length(seed) != 1 || !is.numeric(seed) || is.na(seed) || !is.finite(seed) || seed != floor(seed)) { stop("'seed' must be NULL or a single integer value") } old_kind <- RNGkind() old_seed_exists <- exists(".Random.seed", envir = .GlobalEnv, inherits = FALSE) if (old_seed_exists) { old_seed <- get(".Random.seed", envir = .GlobalEnv, inherits = FALSE) } on.exit({ do.call(RNGkind, as.list(old_kind)) if (old_seed_exists) { assign(".Random.seed", old_seed, envir = .GlobalEnv) } else if (exists(".Random.seed", envir = .GlobalEnv, inherits = FALSE)) { rm(".Random.seed", envir = .GlobalEnv) } }, add = TRUE) stream_seed <- seed trial_streams <- make_rng_streams(stream_seed, N_trials) } else if (backend == "psock") { stream_seed <- sample.int(.Machine$integer.max - 1L, size = 1L) trial_streams <- make_rng_streams(stream_seed, N_trials) } else { trial_streams <- NULL } rng_metadata <- list(caller_kind = caller_rng_kind, stream_kind = if (is.null(trial_streams)) { caller_rng_kind[1] } else { "L'Ecuyer-CMRG" }, seed_policy = if (!is.null(seed)) { "explicit_preserve_caller" } else if (backend == "psock") { "caller_derived_psock" } else { "caller_state" }, backend = backend, ncores = as.integer(workers), requested_ncores = as.integer(ncores), stream_seed = stream_seed) survival_adapt_fn <- if (backend == "psock") { make_psock_callable("survival_adapt") } else { survival_adapt } survival_adapt_wrapper <- function(x) { tryCatch({ if (!is.null(trial_streams)) { assign(".Random.seed", trial_streams[[x]], envir = .GlobalEnv) } result <- survival_adapt_fn(hazard_treatment = hazard_treatment, hazard_control = hazard_control, cutpoints = cutpoints, N_total = N_total, lambda = lambda, lambda_time = lambda_time, interim_look = interim_look, end_of_study = end_of_study, prior_surv = prior_surv, prior_bin = prior_bin, bin_method = bin_method, binary_imputation = binary_imputation, block = block, rand_ratio = rand_ratio, prop_loss = prop_loss, alternative = alternative, h0 = h0, Fn = Fn, Sn = Sn, Qn = Qn, prob_ha = prob_ha, N_impute = N_impute, N_mcmc = N_mcmc, mc_conf_level = mc_conf_level, method = method, imputed_final = imputed_final, empty_interval = empty_interval, return_trace = return_trace, prior_surv_final = prior_surv_final, generation_cutpoints = generation_cutpoints, rmst_tau = rmst_tau) attr(result, "arguments") <- NULL if (inherits(result, "goldilocks_trial")) { attr(result$summary, "arguments") <- NULL } list(trial = as.integer(x), result = result) }, error = function(error) { list(trial = as.integer(x), result = NULL, error_class = class(error)[1L], message = conditionMessage(error)) }) } trial_index <- seq_len(N_trials) trial_results <- switch(backend, sequential = lapply(trial_index, survival_adapt_wrapper), fork = pbmclapply(trial_index, survival_adapt_wrapper, mc.cores = workers), psock = { active_cluster <- make_sim_cluster(workers) on.exit(stop_sim_cluster(active_cluster), add = TRUE) initialize_sim_cluster(active_cluster) run_sim_cluster(active_cluster, trial_index, survival_adapt_wrapper) }) failed <- vapply(trial_results, function(x) is.null(x$result), logical(1)) failed_results <- trial_results[failed] failures <- data.frame(trial = vapply(failed_results, `[[`, integer(1), "trial"), error_class = vapply(failed_results, `[[`, character(1), "error_class"), message = vapply(failed_results, `[[`, character(1), "message"), stringsAsFactors = FALSE) if (all(failed)) { error <- simpleError(paste0("All ", N_trials, " simulated trials failed. First error: ", failures$message[1L])) error$failures <- failures class(error) <- c("goldilocks_all_trials_failed", class(error)) stop(error) } successful_trials <- trial_results[!failed] successful_results <- lapply(successful_trials, `[[`, "result") if (return_trace) { sims <- bind_rows(lapply(successful_results, function(x) x$summary)) traces <- bind_rows(lapply(seq_along(successful_results), function(i) { trace <- successful_results[[i]]$trace trial <- successful_trials[[i]]$trial trace$trial <- rep.int(trial, nrow(trace)) trace[c("trial", setdiff(names(trace), "trial"))] })) out <- list(sims = sims, traces = traces, failures = failures, call = Call) } else { sims <- bind_rows(successful_results) out <- list(sims = sims, failures = failures, call = Call) } attr(out$sims, "arguments") <- NULL attr(out, "enrollment_design") <- new_enrollment_design(lambda = lambda, N_total = N_total, lambda_time = lambda_time, interim_look = interim_look, end_of_study = end_of_study) attr(out, "decision_design") <- attr(successful_results[[1]], "decision_design", exact = TRUE) attr(out, "prior_design") <- attr(successful_results[[1]], "prior_design", exact = TRUE) attr(out, "rng_metadata") <- rng_metadata attr(out, "arguments") <- Arguments attr(out, "parallel_metadata") <- list(requested_backend = requested_backend, backend = backend, selection_reason = execution$reason, requested_ncores = as.integer(ncores), workers = as.integer(workers), tasks = as.integer(N_trials)) if (nrow(failures) > 0L) { warning(nrow(failures), " of ", N_trials, " simulated trials failed and were excluded. See `result$failures` ", "for details.", call. = FALSE) } return(out)})(N_total = 750, lambda = c(0.0666666666666667, 0.166666666666667, 0.333333333333333, 0.5, 0.666666666666667, 0.833333333333333, 1, 1.1), lambda_time = c(30L, 60L, 90L, 120L, 150L, 180L, 210L), interim_look = c(350, 450, 550, 650), end_of_study = 360L, prior_surv = c(0.5, 0.001, 0.5, 0.001, 0.5, 0.001, 0.5, 0.001, 5, 10000), prior_surv_final = c(shape = 0.5, rate = 0.001 ), prior_bin = c(0.5, 0.5), bin_method = "quadrature", block = 2, rand_ratio = c(control = 1, treatment = 1), alternative = "less", Fn = c(0.05, 0.1, 0.1, 0.1), Sn = c(0.95, 0.9, 0.85, 0.8), N_impute = 30, empty_interval = "prior", method = "bayes-bin", imputed_final = TRUE, ncores = 2, cutpoints = c(90, 104, 150, 210), prop_loss = 0.075, N_trials = 500, hazard_treatment = c(0.00011167, 0.002197976, 0.003163208, 0.002839089, 0.000494053), hazard_control = c(0.00011167, 0.002197976, 0.003163208, 0.002839089, 0.000494053), h0 = 0.15, prob_ha = 0.956, return_trace = TRUE, seed = 4610)
23: do.call(sim_trials, c(advent_effectiveness_args, list(N_trials = 500, hazard_treatment = eff_hazard_per_day, hazard_control = eff_hazard_per_day, h0 = 0.15, prob_ha = 0.956, return_trace = TRUE, seed = 4610)))
24: eval(expr, envir)
25: eval(expr, envir)
26: withVisible(eval(expr, envir))
27: withCallingHandlers(code, error = function (e) rlang::entrace(e), message = function (cnd) { watcher$capture_plot_and_output() if (on_message$capture) { watcher$push(cnd) } if (on_message$silence) { invokeRestart("muffleMessage") }}, warning = function (cnd) { if (getOption("warn") >= 2 || getOption("warn") < 0) { return() } watcher$capture_plot_and_output() if (on_warning$capture) { cnd <- sanitize_call(cnd) watcher$push(cnd) } if (on_warning$silence) { invokeRestart("muffleWarning") }}, error = function (cnd) { watcher$capture_plot_and_output() cnd <- sanitize_call(cnd) watcher$push(cnd) switch(on_error, continue = invokeRestart("eval_continue"), stop = invokeRestart("eval_stop"), error = NULL)})
28: eval(call)
29: eval(call)
30: with_handlers({ for (expr in tle$exprs) { ev <- withVisible(eval(expr, envir)) watcher$capture_plot_and_output() watcher$print_value(ev$value, ev$visible, envir) } TRUE}, handlers)
31: doWithOneRestart(return(expr), restart)
32: withOneRestart(expr, restarts[[1L]])
33: withRestartList(expr, restarts[-nr])
34: doWithOneRestart(return(expr), restart)
35: withOneRestart(withRestartList(expr, restarts[-nr]), restarts[[nr]])
36: withRestartList(expr, restarts)
37: withRestarts(with_handlers({ for (expr in tle$exprs) { ev <- withVisible(eval(expr, envir)) watcher$capture_plot_and_output() watcher$print_value(ev$value, ev$visible, envir) } TRUE}, handlers), eval_continue = function() TRUE, eval_stop = function() FALSE)
38: evaluate::evaluate(...)
39: evaluate(code, envir = env, new_device = FALSE, keep_warning = if (is.numeric(options$warning)) TRUE else options$warning, keep_message = if (is.numeric(options$message)) TRUE else options$message, stop_on_error = if (is.numeric(options$error)) options$error else { if (options$error && options$include) 0L else 2L }, output_handler = knit_handlers(options$render, options))
40: in_dir(input_dir(), expr)
41: in_input_dir(evaluate(code, envir = env, new_device = FALSE, keep_warning = if (is.numeric(options$warning)) TRUE else options$warning, keep_message = if (is.numeric(options$message)) TRUE else options$message, stop_on_error = if (is.numeric(options$error)) options$error else { if (options$error && options$include) 0L else 2L }, output_handler = knit_handlers(options$render, options)))
42: eng_r(options)
43: block_exec(params)
44: call_block(x)
45: process_group(group)
46: withCallingHandlers(if (tangle) process_tangle(group) else process_group(group), error = function(e) { if (progress && is.function(pb$interrupt)) pb$interrupt() if (is_R_CMD_build() || is_R_CMD_check()) error <<- format(e) })
47: with_options(withCallingHandlers(if (tangle) process_tangle(group) else process_group(group), error = function(e) { if (progress && is.function(pb$interrupt)) pb$interrupt() if (is_R_CMD_build() || is_R_CMD_check()) error <<- format(e) }), list(rlang_trace_top_env = knit_global()))
48: xfun:::handle_error(with_options(withCallingHandlers(if (tangle) process_tangle(group) else process_group(group), error = function(e) { if (progress && is.function(pb$interrupt)) pb$interrupt() if (is_R_CMD_build() || is_R_CMD_check()) error <<- format(e) }), list(rlang_trace_top_env = knit_global())), function(loc) { setwd(wd) write_utf8(res, output %n% stdout()) paste0("\nQuitting from ", loc, if (!is.null(error)) paste0("\n", rule(), error, "\n", rule()))}, if (labels[i] != "") sprintf(" [%s]", labels[i]), get_loc)
49: process_file(text, output)
50: knitr::knit(knit_input, knit_output, envir = envir, quiet = quiet)
51: rmarkdown::render(file, encoding = encoding, quiet = quiet, envir = globalenv(), output_dir = getwd(), ...)
52: vweave_rmarkdown(...)
53: engine$weave(file, quiet = quiet, encoding = enc)
54: doTryCatch(return(expr), name, parentenv, handler)
55: tryCatchOne(expr, names, parentenv, handlers[[1L]])
56: tryCatchList(expr, classes, parentenv, handlers)
57: tryCatch({ engine$weave(file, quiet = quiet, encoding = enc) setwd(startdir) output <- find_vignette_product(name, by = "weave", engine = engine) if (!have.makefile && vignette_is_tex(output)) { texi2pdf(file = output, clean = FALSE, quiet = quiet) output <- find_vignette_product(name, by = "texi2pdf", engine = engine) }}, error = function(e) { OK <<- FALSE message(gettextf("Error: processing vignette '%s' failed with diagnostics:\n%s", file, conditionMessage(e)))})
58: tools:::.buildOneVignette("advent.Rmd", "/Volumes/Builds/packages/big-sur-arm64/results/4.5/goldilocks.Rcheck/vign_test/goldilocks", TRUE, TRUE, "advent", "UTF-8", "/Volumes/Temp/tmp/RtmpxYag8g/file55b06e19da5d.rds")
An irrecoverable exception occurred. R is aborting now ...
*** caught segfault ***
address 0x110, cause 'invalid permissions'
Traceback:
1: impute_predictive_arm(time = rep.int(0, length(future_treatment)), hazards = treatment_hazards, random_input = random_inputs$future_treatment, end_of_study = end_of_study, cutpoints = cutpoints, binary_imputation = binary_imputation)
2: fill_predictive_imputations(imputations = future, rows = future_treatment, values = impute_predictive_arm(time = rep.int(0, length(future_treatment)), hazards = treatment_hazards, random_input = random_inputs$future_treatment, end_of_study = end_of_study, cutpoints = cutpoints, binary_imputation = binary_imputation))
3: impute_predictive_draws(data_in = data_interim, hazards = post_lambda, end_of_study = end_of_study, cutpoints = cutpoints, single_arm = single_arm, binary_imputation = predictive_binary_imputation, check_futility = check_futility)
4: evaluate_interim_decision(data_interim = data_interim, look = i, planned_N = analysis_at_enrollnumber[i], calendar_time = look_time, active_followup = active_followup_at(data_total, look_time), end_of_study = end_of_study, rmst_tau = rmst_tau, cutpoints = cutpoints, single_arm = single_arm, prior_surv = prior_surv, prior_surv_final = prior_surv_final, prior_bin = prior_bin, bin_method = bin_method, alternative = alternative, h0 = h0, Fn = Fn[i], Sn = Sn[i], prob_ha = prob_ha, N_impute = N_impute, N_mcmc = N_mcmc, mc_conf_level = mc_conf_level, empty_interval = empty_interval, method = method, binary_imputation = binary_imputation, check_futility = check_futility, Qn = Qn[i])
5: survival_adapt_fn(hazard_treatment = hazard_treatment, hazard_control = hazard_control, cutpoints = cutpoints, N_total = N_total, lambda = lambda, lambda_time = lambda_time, interim_look = interim_look, end_of_study = end_of_study, prior_surv = prior_surv, prior_bin = prior_bin, bin_method = bin_method, binary_imputation = binary_imputation, block = block, rand_ratio = rand_ratio, prop_loss = prop_loss, alternative = alternative, h0 = h0, Fn = Fn, Sn = Sn, Qn = Qn, prob_ha = prob_ha, N_impute = N_impute, N_mcmc = N_mcmc, mc_conf_level = mc_conf_level, method = method, imputed_final = imputed_final, empty_interval = empty_interval, return_trace = return_trace, prior_surv_final = prior_surv_final, generation_cutpoints = generation_cutpoints, rmst_tau = rmst_tau)
6: doTryCatch(return(expr), name, parentenv, handler)
7: tryCatchOne(expr, names, parentenv, handlers[[1L]])
8: tryCatchList(expr, classes, parentenv, handlers)
9: tryCatch({ if (!is.null(trial_streams)) { assign(".Random.seed", trial_streams[[x]], envir = .GlobalEnv) } result <- survival_adapt_fn(hazard_treatment = hazard_treatment, hazard_control = hazard_control, cutpoints = cutpoints, N_total = N_total, lambda = lambda, lambda_time = lambda_time, interim_look = interim_look, end_of_study = end_of_study, prior_surv = prior_surv, prior_bin = prior_bin, bin_method = bin_method, binary_imputation = binary_imputation, block = block, rand_ratio = rand_ratio, prop_loss = prop_loss, alternative = alternative, h0 = h0, Fn = Fn, Sn = Sn, Qn = Qn, prob_ha = prob_ha, N_impute = N_impute, N_mcmc = N_mcmc, mc_conf_level = mc_conf_level, method = method, imputed_final = imputed_final, empty_interval = empty_interval, return_trace = return_trace, prior_surv_final = prior_surv_final, generation_cutpoints = generation_cutpoints, rmst_tau = rmst_tau) attr(result, "arguments") <- NULL if (inherits(result, "goldilocks_trial")) { attr(result$summary, "arguments") <- NULL } list(trial = as.integer(x), result = result)}, error = function(error) { list(trial = as.integer(x), result = NULL, error_class = class(error)[1L], message = conditionMessage(error))})
10: FUN(X[[i]], ...)
11: lapply(X = S, FUN = FUN, ...)
12: doTryCatch(return(expr), name, parentenv, handler)
13: tryCatchOne(expr, names, parentenv, handlers[[1L]])
14: tryCatchList(expr, classes, parentenv, handlers)
15: tryCatch(expr, error = function(e) { call <- conditionCall(e) if (!is.null(call)) { if (identical(call[[1L]], quote(doTryCatch))) call <- sys.call(-4L) dcall <- deparse(call, nlines = 1L) prefix <- paste("Error in", dcall, ": ") LONG <- 75L sm <- strsplit(conditionMessage(e), "\n")[[1L]] w <- 14L + nchar(dcall, type = "w") + nchar(sm[1L], type = "w") if (is.na(w)) w <- 14L + nchar(dcall, type = "b") + nchar(sm[1L], type = "b") if (w > LONG) prefix <- paste0(prefix, "\n ") } else prefix <- "Error : " msg <- paste0(prefix, conditionMessage(e), "\n") .Internal(seterrmessage(msg[1L])) if (!silent && isTRUE(getOption("show.error.messages"))) { cat(msg, file = outFile) .Internal(printDeferredWarnings()) } invisible(structure(msg, class = "try-error", condition = e))})
16: try(lapply(X = S, FUN = FUN, ...), silent = TRUE)
17: sendMaster(try(lapply(X = S, FUN = FUN, ...), silent = TRUE))
18: FUN(X[[i]], ...)
19: lapply(seq_len(cores), inner.do)
20: mclapply(X, FUN, ..., mc.cores = mc.cores, mc.preschedule = mc.preschedule, mc.set.seed = mc.set.seed, mc.cleanup = mc.cleanup, mc.allow.recursive = mc.allow.recursive)
21: pbmclapply(trial_index, survival_adapt_wrapper, mc.cores = workers)
22: (function (hazard_treatment, hazard_control = NULL, cutpoints = NULL, N_total, lambda = 0.3, lambda_time = NULL, interim_look = NULL, end_of_study, prior_surv = c(0.1, 0.1), prior_bin = c(1, 1), bin_method = "mc", block = 2, rand_ratio = c(control = 1, treatment = 1), prop_loss = 0, alternative = "greater", h0 = 0, Fn = 0.05, Sn = 0.9, prob_ha = 0.95, N_impute = 500, N_mcmc = 1000, mc_conf_level = 0.95, N_trials = 10, method = "logrank", imputed_final = FALSE, empty_interval = c("prior", "propagate", "error"), return_trace = FALSE, ncores = 1L, backend = c("auto", "fork", "psock", "sequential"), seed = NULL, binary_imputation = c("event-time", "bernoulli"), prior_surv_final = prior_surv, generation_cutpoints = cutpoints, Qn = 1, rmst_tau = end_of_study) { Call <- match.call() Arguments <- capture_arguments(sim_trials, environment()) method <- normalize_analysis_method(method) Arguments$method <- method empty_interval <- match.arg(empty_interval) binary_imputation <- match.arg(binary_imputation) backend <- match.arg(backend) Arguments$empty_interval <- empty_interval Arguments$binary_imputation <- binary_imputation Arguments$backend <- backend requested_backend <- backend caller_rng_kind <- RNGkind() validate_positive_integer_scalar(N_trials, "N_trials") single_arm <- is.null(hazard_control) if (!single_arm) { rand_ratio <- validate_randomization_args(N_total, block, rand_ratio, allocation_name = "rand_ratio") Arguments$rand_ratio <- rand_ratio } prop_loss <- normalize_prop_loss(prop_loss, single_arm = single_arm) Arguments$prop_loss <- prop_loss validate_logical_scalar(return_trace, "return_trace") validate_positive_integer_scalar(N_impute, "N_impute") validate_positive_integer_scalar(N_mcmc, "N_mcmc") validate_single_probability(mc_conf_level, "mc_conf_level", upper_open = TRUE) if (mc_conf_level <= 0.5) { stop("'mc_conf_level' must be greater than 0.5 and less than 1") } validate_final_imputation(method, imputed_final, has_missing_outcomes = any(prop_loss > 0), N_impute = N_impute) if (identical(method, "rmst")) { validate_endpoint_time(end_of_study, cutpoints, "end_of_study") validate_rmst_args(rmst_tau, end_of_study, h0) validate_analysis_configuration(method, alternative, is.null(hazard_control), imputed_final) } validate_positive_integer_scalar(ncores, "ncores") execution <- resolve_sim_execution(backend = backend, ncores = ncores, N_trials = N_trials) backend <- execution$backend workers <- execution$workers stream_seed <- NULL if (!is.null(seed)) { if (length(seed) != 1 || !is.numeric(seed) || is.na(seed) || !is.finite(seed) || seed != floor(seed)) { stop("'seed' must be NULL or a single integer value") } old_kind <- RNGkind() old_seed_exists <- exists(".Random.seed", envir = .GlobalEnv, inherits = FALSE) if (old_seed_exists) { old_seed <- get(".Random.seed", envir = .GlobalEnv, inherits = FALSE) } on.exit({ do.call(RNGkind, as.list(old_kind)) if (old_seed_exists) { assign(".Random.seed", old_seed, envir = .GlobalEnv) } else if (exists(".Random.seed", envir = .GlobalEnv, inherits = FALSE)) { rm(".Random.seed", envir = .GlobalEnv) } }, add = TRUE) stream_seed <- seed trial_streams <- make_rng_streams(stream_seed, N_trials) } else if (backend == "psock") { stream_seed <- sample.int(.Machine$integer.max - 1L, size = 1L) trial_streams <- make_rng_streams(stream_seed, N_trials) } else { trial_streams <- NULL } rng_metadata <- list(caller_kind = caller_rng_kind, stream_kind = if (is.null(trial_streams)) { caller_rng_kind[1] } else { "L'Ecuyer-CMRG" }, seed_policy = if (!is.null(seed)) { "explicit_preserve_caller" } else if (backend == "psock") { "caller_derived_psock" } else { "caller_state" }, backend = backend, ncores = as.integer(workers), requested_ncores = as.integer(ncores), stream_seed = stream_seed) survival_adapt_fn <- if (backend == "psock") { make_psock_callable("survival_adapt") } else { survival_adapt } survival_adapt_wrapper <- function(x) { tryCatch({ if (!is.null(trial_streams)) { assign(".Random.seed", trial_streams[[x]], envir = .GlobalEnv) } result <- survival_adapt_fn(hazard_treatment = hazard_treatment, hazard_control = hazard_control, cutpoints = cutpoints, N_total = N_total, lambda = lambda, lambda_time = lambda_time, interim_look = interim_look, end_of_study = end_of_study, prior_surv = prior_surv, prior_bin = prior_bin, bin_method = bin_method, binary_imputation = binary_imputation, block = block, rand_ratio = rand_ratio, prop_loss = prop_loss, alternative = alternative, h0 = h0, Fn = Fn, Sn = Sn, Qn = Qn, prob_ha = prob_ha, N_impute = N_impute, N_mcmc = N_mcmc, mc_conf_level = mc_conf_level, method = method, imputed_final = imputed_final, empty_interval = empty_interval, return_trace = return_trace, prior_surv_final = prior_surv_final, generation_cutpoints = generation_cutpoints, rmst_tau = rmst_tau) attr(result, "arguments") <- NULL if (inherits(result, "goldilocks_trial")) { attr(result$summary, "arguments") <- NULL } list(trial = as.integer(x), result = result) }, error = function(error) { list(trial = as.integer(x), result = NULL, error_class = class(error)[1L], message = conditionMessage(error)) }) } trial_index <- seq_len(N_trials) trial_results <- switch(backend, sequential = lapply(trial_index, survival_adapt_wrapper), fork = pbmclapply(trial_index, survival_adapt_wrapper, mc.cores = workers), psock = { active_cluster <- make_sim_cluster(workers) on.exit(stop_sim_cluster(active_cluster), add = TRUE) initialize_sim_cluster(active_cluster) run_sim_cluster(active_cluster, trial_index, survival_adapt_wrapper) }) failed <- vapply(trial_results, function(x) is.null(x$result), logical(1)) failed_results <- trial_results[failed] failures <- data.frame(trial = vapply(failed_results, `[[`, integer(1), "trial"), error_class = vapply(failed_results, `[[`, character(1), "error_class"), message = vapply(failed_results, `[[`, character(1), "message"), stringsAsFactors = FALSE) if (all(failed)) { error <- simpleError(paste0("All ", N_trials, " simulated trials failed. First error: ", failures$message[1L])) error$failures <- failures class(error) <- c("goldilocks_all_trials_failed", class(error)) stop(error) } successful_trials <- trial_results[!failed] successful_results <- lapply(successful_trials, `[[`, "result") if (return_trace) { sims <- bind_rows(lapply(successful_results, function(x) x$summary)) traces <- bind_rows(lapply(seq_along(successful_results), function(i) { trace <- successful_results[[i]]$trace trial <- successful_trials[[i]]$trial trace$trial <- rep.int(trial, nrow(trace)) trace[c("trial", setdiff(names(trace), "trial"))] })) out <- list(sims = sims, traces = traces, failures = failures, call = Call) } else { sims <- bind_rows(successful_results) out <- list(sims = sims, failures = failures, call = Call) } attr(out$sims, "arguments") <- NULL attr(out, "enrollment_design") <- new_enrollment_design(lambda = lambda, N_total = N_total, lambda_time = lambda_time, interim_look = interim_look, end_of_study = end_of_study) attr(out, "decision_design") <- attr(successful_results[[1]], "decision_design", exact = TRUE) attr(out, "prior_design") <- attr(successful_results[[1]], "prior_design", exact = TRUE) attr(out, "rng_metadata") <- rng_metadata attr(out, "arguments") <- Arguments attr(out, "parallel_metadata") <- list(requested_backend = requested_backend, backend = backend, selection_reason = execution$reason, requested_ncores = as.integer(ncores), workers = as.integer(workers), tasks = as.integer(N_trials)) if (nrow(failures) > 0L) { warning(nrow(failures), " of ", N_trials, " simulated trials failed and were excluded. See `result$failures` ", "for details.", call. = FALSE) } return(out)})(N_total = 750, lambda = c(0.0666666666666667, 0.166666666666667, 0.333333333333333, 0.5, 0.666666666666667, 0.833333333333333, 1, 1.1), lambda_time = c(30L, 60L, 90L, 120L, 150L, 180L, 210L), interim_look = c(350, 450, 550, 650), end_of_study = 360L, prior_surv = c(0.5, 0.001, 0.5, 0.001, 0.5, 0.001, 0.5, 0.001, 5, 10000), prior_surv_final = c(shape = 0.5, rate = 0.001 ), prior_bin = c(0.5, 0.5), bin_method = "quadrature", block = 2, rand_ratio = c(control = 1, treatment = 1), alternative = "less", Fn = c(0.05, 0.1, 0.1, 0.1), Sn = c(0.95, 0.9, 0.85, 0.8), N_impute = 30, empty_interval = "prior", method = "bayes-bin", imputed_final = TRUE, ncores = 2, cutpoints = c(90, 104, 150, 210), prop_loss = 0.075, N_trials = 500, hazard_treatment = c(0.00011167, 0.002197976, 0.003163208, 0.002839089, 0.000494053), hazard_control = c(0.00011167, 0.002197976, 0.003163208, 0.002839089, 0.000494053), h0 = 0.15, prob_ha = 0.956, return_trace = TRUE, seed = 4610)
23: do.call(sim_trials, c(advent_effectiveness_args, list(N_trials = 500, hazard_treatment = eff_hazard_per_day, hazard_control = eff_hazard_per_day, h0 = 0.15, prob_ha = 0.956, return_trace = TRUE, seed = 4610)))
24: eval(expr, envir)
25: eval(expr, envir)
26: withVisible(eval(expr, envir))
27: withCallingHandlers(code, error = function (e) rlang::entrace(e), message = function (cnd) { watcher$capture_plot_and_output() if (on_message$capture) { watcher$push(cnd) } if (on_message$silence) { invokeRestart("muffleMessage") }}, warning = function (cnd) { if (getOption("warn") >= 2 || getOption("warn") < 0) { return() } watcher$capture_plot_and_output() if (on_warning$capture) { cnd <- sanitize_call(cnd) watcher$push(cnd) } if (on_warning$silence) { invokeRestart("muffleWarning") }}, error = function (cnd) { watcher$capture_plot_and_output() cnd <- sanitize_call(cnd) watcher$push(cnd) switch(on_error, continue = invokeRestart("eval_continue"), stop = invokeRestart("eval_stop"), error = NULL)})
28: eval(call)
29: eval(call)
30: with_handlers({ for (expr in tle$exprs) { ev <- withVisible(eval(expr, envir)) watcher$capture_plot_and_output() watcher$print_value(ev$value, ev$visible, envir) } TRUE}, handlers)
31: doWithOneRestart(return(expr), restart)
32: withOneRestart(expr, restarts[[1L]])
33: withRestartList(expr, restarts[-nr])
34: doWithOneRestart(return(expr), restart)
35: withOneRestart(withRestartList(expr, restarts[-nr]), restarts[[nr]])
36: withRestartList(expr, restarts)
37: withRestarts(with_handlers({ for (expr in tle$exprs) { ev <- withVisible(eval(expr, envir)) watcher$capture_plot_and_output() watcher$print_value(ev$value, ev$visible, envir) } TRUE}, handlers), eval_continue = function() TRUE, eval_stop = function() FALSE)
38: evaluate::evaluate(...)
39: evaluate(code, envir = env, new_device = FALSE, keep_warning = if (is.numeric(options$warning)) TRUE else options$warning, keep_message = if (is.numeric(options$message)) TRUE else options$message, stop_on_error = if (is.numeric(options$error)) options$error else { if (options$error && options$include) 0L else 2L }, output_handler = knit_handlers(options$render, options))
40: in_dir(input_dir(), expr)
41: in_input_dir(evaluate(code, envir = env, new_device = FALSE, keep_warning = if (is.numeric(options$warning)) TRUE else options$warning, keep_message = if (is.numeric(options$message)) TRUE else options$message, stop_on_error = if (is.numeric(options$error)) options$error else { if (options$error && options$include) 0L else 2L }, output_handler = knit_handlers(options$render, options)))
42: eng_r(options)
43: block_exec(params)
44: call_block(x)
45: process_group(group)
46: withCallingHandlers(if (tangle) process_tangle(group) else process_group(group), error = function(e) { if (progress && is.function(pb$interrupt)) pb$interrupt() if (is_R_CMD_build() || is_R_CMD_check()) error <<- format(e) })
47: with_options(withCallingHandlers(if (tangle) process_tangle(group) else process_group(group), error = function(e) { if (progress && is.function(pb$interrupt)) pb$interrupt() if (is_R_CMD_build() || is_R_CMD_check()) error <<- format(e) }), list(rlang_trace_top_env = knit_global()))
48: xfun:::handle_error(with_options(withCallingHandlers(if (tangle) process_tangle(group) else process_group(group), error = function(e) { if (progress && is.function(pb$interrupt)) pb$interrupt() if (is_R_CMD_build() || is_R_CMD_check()) error <<- format(e) }), list(rlang_trace_top_env = knit_global())), function(loc) { setwd(wd) write_utf8(res, output %n% stdout()) paste0("\nQuitting from ", loc, if (!is.null(error)) paste0("\n", rule(), error, "\n", rule()))}, if (labels[i] != "") sprintf(" [%s]", labels[i]), get_loc)
49: process_file(text, output)
50: knitr::knit(knit_input, knit_output, envir = envir, quiet = quiet)
51: rmarkdown::render(file, encoding = encoding, quiet = quiet, envir = globalenv(), output_dir = getwd(), ...)
52: vweave_rmarkdown(...)
53: engine$weave(file, quiet = quiet, encoding = enc)
54: doTryCatch(return(expr), name, parentenv, handler)
55: tryCatchOne(expr, names, parentenv, handlers[[1L]])
56: tryCatchList(expr, classes, parentenv, handlers)
57: tryCatch({ engine$weave(file, quiet = quiet, encoding = enc) setwd(startdir) output <- find_vignette_product(name, by = "weave", engine = engine) if (!have.makefile && vignette_is_tex(output)) { texi2pdf(file = output, clean = FALSE, quiet = quiet) output <- find_vignette_product(name, by = "texi2pdf", engine = engine) }}, error = function(e) { OK <<- FALSE message(gettextf("Error: processing vignette '%s' failed with diagnostics:\n%s", file, conditionMessage(e)))})
58: tools:::.buildOneVignette("advent.Rmd", "/Volumes/Builds/packages/big-sur-arm64/results/4.5/goldilocks.Rcheck/vign_test/goldilocks", TRUE, TRUE, "advent", "UTF-8", "/Volumes/Temp/tmp/RtmpxYag8g/file55b06e19da5d.rds")
An irrecoverable exception occurred. R is aborting now ...
Quitting from advent.Rmd:577-621 [oc-small]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<error/rlang_error>
Error in `vapply()`:
! values must be length 1,
but FUN(X[[1]]) result is length 0
---
Backtrace:
▆
1. ├─base::do.call(...)
2. └─goldilocks (local) `<fn>`(...)
3. ├─base::data.frame(...)
4. └─base::vapply(failed_results, `[[`, integer(1), "trial")
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error: processing vignette 'advent.Rmd' failed with diagnostics:
values must be length 1,
but FUN(X[[1]]) result is length 0
--- failed re-building ‘advent.Rmd’
--- re-building ‘anthem-hfref.Rmd’ using rmarkdown
2026-10-17 15:12:13.397 R[24157:338581] XType: Using static font registry.
*** caught segfault ***
address 0x110, cause 'invalid permissions'
*** caught segfault ***
address 0x110, cause 'invalid permissions'
Traceback:
1: impute_predictive_arm(time = data_in$time[current_treatment], hazards = treatment_hazards, random_input = random_inputs$current_treatment, end_of_study = end_of_study, cutpoints = cutpoints, binary_imputation = binary_imputation)
2: fill_predictive_imputations(imputations = current, rows = current_treatment, values = impute_predictive_arm(time = data_in$time[current_treatment], hazards = treatment_hazards, random_input = random_inputs$current_treatment, end_of_study = end_of_study, cutpoints = cutpoints, binary_imputation = binary_imputation))
3: impute_predictive_draws(data_in = data_interim, hazards = post_lambda, end_of_study = end_of_study, cutpoints = cutpoints, single_arm = single_arm, binary_imputation = predictive_binary_imputation, check_futility = check_futility)
4: evaluate_interim_decision(data_interim = data_interim, look = i, planned_N = analysis_at_enrollnumber[i], calendar_time = look_time, active_followup = active_followup_at(data_total, look_time), end_of_study = end_of_study, rmst_tau = rmst_tau, cutpoints = cutpoints, single_arm = single_arm, prior_surv = prior_surv, prior_surv_final = prior_surv_final, prior_bin = prior_bin, bin_method = bin_method, alternative = alternative, h0 = h0, Fn = Fn[i], Sn = Sn[i], prob_ha = prob_ha, N_impute = N_impute, N_mcmc = N_mcmc, mc_conf_level = mc_conf_level, empty_interval = empty_interval, method = method, binary_imputation = binary_imputation, check_futility = check_futility, Qn = Qn[i])
5: survival_adapt_fn(hazard_treatment = hazard_treatment, hazard_control = hazard_control, cutpoints = cutpoints, N_total = N_total, lambda = lambda, lambda_time = lambda_time, interim_look = interim_look, end_of_study = end_of_study, prior_surv = prior_surv, prior_bin = prior_bin, bin_method = bin_method, binary_imputation = binary_imputation, block = block, rand_ratio = rand_ratio, prop_loss = prop_loss, alternative = alternative, h0 = h0, Fn = Fn, Sn = Sn, Qn = Qn, prob_ha = prob_ha, N_impute = N_impute, N_mcmc = N_mcmc, mc_conf_level = mc_conf_level, method = method,
Traceback:
1: imputed_final = imputed_final, empty_interval = empty_interval, impute_predictive_arm(time = data_in$time[current_treatment], return_trace = return_trace, prior_surv_final = prior_surv_final, hazards = treatment_hazards, random_input = random_inputs$current_treatment, generation_cutpoints = generation_cutpoints, rmst_tau = rmst_tau) end_of_study = end_of_study, cutpoints = cutpoints, binary_imputation = binary_imputation)
6: 2: doTryCatch(return(expr), name, parentenv, handler)fill_predictive_imputations(imputations = current, rows = current_treatment,
7: values = impute_predictive_arm(time = data_in$time[current_treatment], tryCatchOne(expr, names, parentenv, handlers[[1L]]) hazards = treatment_hazards, random_input = random_inputs$current_treatment,
end_of_study = end_of_study, cutpoints = cutpoints, binary_imputation = binary_imputation))
8: 3: tryCatchList(expr, classes, parentenv, handlers)impute_predictive_draws(data_in = data_interim, hazards = post_lambda,
end_of_study = end_of_study, cutpoints = cutpoints, single_arm = single_arm, 9: tryCatch({ binary_imputation = predictive_binary_imputation, check_futility = check_futility) if (!is.null(trial_streams)) {
assign(".Random.seed", trial_streams[[x]], envir = .GlobalEnv) 4: } result <- survival_adapt_fn(hazard_treatment = hazard_treatment, evaluate_interim_decision(data_interim = data_interim, look = i, planned_N = analysis_at_enrollnumber[i], calendar_time = look_time, hazard_control = hazard_control, cutpoints = cutpoints, active_followup = active_followup_at(data_total, look_time), end_of_study = end_of_study, rmst_tau = rmst_tau, cutpoints = cutpoints, N_total = N_total, lambda = lambda, lambda_time = lambda_time, single_arm = single_arm, prior_surv = prior_surv, prior_surv_final = prior_surv_final, interim_look = interim_look, end_of_study = end_of_study, prior_bin = prior_bin, bin_method = bin_method, alternative = alternative, prior_surv = prior_surv, prior_bin = prior_bin, bin_method = bin_method, h0 = h0, Fn = Fn[i], Sn = Sn[i], prob_ha = prob_ha, N_impute = N_impute, binary_imputation = binary_imputation, block = block, N_mcmc = N_mcmc, mc_conf_level = mc_conf_level, empty_interval = empty_interval, rand_ratio = rand_ratio, prop_loss = prop_loss, alternative = alternative, method = method, binary_imputation = binary_imputation, check_futility = check_futility, h0 = h0, Fn = Fn, Sn = Sn, Qn = Qn, prob_ha = prob_ha, Qn = Qn[i]) N_impute = N_impute, N_mcmc = N_mcmc, mc_conf_level = mc_conf_level,
method = method, imputed_final = imputed_final, empty_interval = empty_interval, 5: return_trace = return_trace, prior_surv_final = prior_surv_final, survival_adapt_fn(hazard_treatment = hazard_treatment, hazard_control = hazard_control, generation_cutpoints = generation_cutpoints, rmst_tau = rmst_tau) cutpoints = cutpoints, N_total = N_total, lambda = lambda, attr(result, "arguments") <- NULL lambda_time = lambda_time, interim_look = interim_look, end_of_study = end_of_study, if (inherits(result, "goldilocks_trial")) { prior_surv = prior_surv, prior_bin = prior_bin, bin_method = bin_method, attr(result$summary, "arguments") <- NULL binary_imputation = binary_imputation, block = block, rand_ratio = rand_ratio, } prop_loss = prop_loss, alternative = alternative, h0 = h0, list(trial = as.integer(x), result = result) Fn = Fn, Sn = Sn, Qn = Qn, prob_ha = prob_ha, N_impute = N_impute, }, error = function(error) { N_mcmc = N_mcmc, mc_conf_level = mc_conf_level, method = method, list(trial = as.integer(x), result = NULL, error_class = class(error)[1L], imputed_final = imputed_final, empty_interval = empty_interval, message = conditionMessage(error)) return_trace = return_trace, prior_surv_final = prior_surv_final, }) generation_cutpoints = generation_cutpoints, rmst_tau = rmst_tau)
10: 6: FUN(X[[i]], ...)doTryCatch(return(expr), name, parentenv, handler)
7: 11: tryCatchOne(expr, names, parentenv, handlers[[1L]])lapply(X = S, FUN = FUN, ...)
8: 12: tryCatchList(expr, classes, parentenv, handlers)doTryCatch(return(expr), name, parentenv, handler)
9: 13: tryCatch({tryCatchOne(expr, names, parentenv, handlers[[1L]]) if (!is.null(trial_streams)) {
assign(".Random.seed", trial_streams[[x]], envir = .GlobalEnv)14: } result <- survival_adapt_fn(hazard_treatment = hazard_treatment, tryCatchList(expr, classes, parentenv, handlers) hazard_control = hazard_control, cutpoints = cutpoints,
N_total = N_total, lambda = lambda, lambda_time = lambda_time, 15: interim_look = interim_look, end_of_study = end_of_study, tryCatch(expr, error = function(e) { prior_surv = prior_surv, prior_bin = prior_bin, bin_method = bin_method, call <- conditionCall(e) binary_imputation = binary_imputation, block = block, if (!is.null(call)) { rand_ratio = rand_ratio, prop_loss = prop_loss, alternative = alternative, if (identical(call[[1L]], quote(doTryCatch))) h0 = h0, Fn = Fn, Sn = Sn, Qn = Qn, prob_ha = prob_ha, call <- sys.call(-4L) N_impute = N_impute, N_mcmc = N_mcmc, mc_conf_level = mc_conf_level, dcall <- deparse(call, nlines = 1L) method = method, imputed_final = imputed_final, empty_interval = empty_interval, prefix <- paste("Error in", dcall, ": ") return_trace = return_trace, prior_surv_final = prior_surv_final, LONG <- 75L generation_cutpoints = generation_cutpoints, rmst_tau = rmst_tau) sm <- strsplit(conditionMessage(e), "\n")[[1L]] attr(result, "arguments") <- NULL if (inherits(result, "goldilocks_trial")) { w <- 14L + nchar(dcall, type = "w") + nchar(sm[1L], type = "w") attr(result$summary, "arguments") <- NULL if (is.na(w)) } w <- 14L + nchar(dcall, type = "b") + nchar(sm[1L], list(trial = as.integer(x), result = result) type = "b")}, error = function(error) { list(trial = as.integer(x), result = NULL, error_class = class(error)[1L], if (w > LONG) message = conditionMessage(error)) prefix <- paste0(prefix, "\n ")}) }
else prefix <- "Error : "10: msg <- paste0(prefix, conditionMessage(e), "\n")FUN(X[[i]], ...) .Internal(seterrmessage(msg[1L]))
if (!silent && isTRUE(getOption("show.error.messages"))) {11: cat(msg, file = outFile) .Internal(printDeferredWarnings())lapply(X = S, FUN = FUN, ...) }
invisible(structure(msg, class = "try-error", condition = e))12: })doTryCatch(return(expr), name, parentenv, handler)
16: 13: try(lapply(X = S, FUN = FUN, ...), silent = TRUE)tryCatchOne(expr, names, parentenv, handlers[[1L]])
17: 14: sendMaster(try(lapply(X = S, FUN = FUN, ...), silent = TRUE))tryCatchList(expr, classes, parentenv, handlers)
18: 15: FUN(X[[i]], ...)tryCatch(expr, error = function(e) {
19: call <- conditionCall(e)lapply(seq_len(cores), inner.do) if (!is.null(call)) {
if (identical(call[[1L]], quote(doTryCatch))) 20: call <- sys.call(-4L)mclapply(X, FUN, ..., mc.cores = mc.cores, mc.preschedule = mc.preschedule, dcall <- deparse(call, nlines = 1L) mc.set.seed = mc.set.seed, mc.cleanup = mc.cleanup, mc.allow.recursive = mc.allow.recursive) prefix <- paste("Error in", dcall, ": ")
LONG <- 75L21: sm <- strsplit(conditionMessage(e), "\n")[[1L]] w <- 14L + nchar(dcall, type = "w") + nchar(sm[1L], type = "w")pbmclapply(trial_index, survival_adapt_wrapper, mc.cores = workers) if (is.na(w))
22: (function (hazard_treatment, hazard_control = NULL, cutpoints = NULL, w <- 14L + nchar(dcall, type = "b") + nchar(sm[1L], N_total, lambda = 0.3, lambda_time = NULL, interim_look = NULL, type = "b") end_of_study, prior_surv = c(0.1, 0.1), prior_bin = c(1, if (w > LONG) 1), bin_method = "mc", block = 2, rand_ratio = c(control = 1, prefix <- paste0(prefix, "\n ") treatment = 1), prop_loss = 0, alternative = "greater", } h0 = 0, Fn = 0.05, Sn = 0.9, prob_ha = 0.95, N_impute = 500, else prefix <- "Error : " N_mcmc = 1000, mc_conf_level = 0.95, N_trials = 10, method = "logrank", msg <- paste0(prefix, conditionMessage(e), "\n") imputed_final = FALSE, empty_interval = c("prior", "propagate", .Internal(seterrmessage(msg[1L])) "error"), return_trace = FALSE, ncores = 1L, backend = c("auto", if (!silent && isTRUE(getOption("show.error.messages"))) { "fork", "psock", "sequential"), seed = NULL, binary_imputation = c("event-time", cat(msg, file = outFile) "bernoulli"), prior_surv_final = prior_surv, generation_cutpoints = cutpoints, .Internal(printDeferredWarnings()) Qn = 1, rmst_tau = end_of_study) }{ invisible(structure(msg, class = "try-error", condition = e)) Call <- match.call()}) Arguments <- capture_arguments(sim_trials, environment())
method <- normalize_analysis_method(method)16: Arguments$method <- methodtry(lapply(X = S, FUN = FUN, ...), silent = TRUE) empty_interval <- match.arg(empty_interval)
binary_imputation <- match.arg(binary_imputation)17: backend <- match.arg(backend)sendMaster(try(lapply(X = S, FUN = FUN, ...), silent = TRUE)) Arguments$empty_interval <- empty_interval
Arguments$binary_imputation <- binary_imputation18: Arguments$backend <- backendFUN(X[[i]], ...) requested_backend <- backend
caller_rng_kind <- RNGkind()19: validate_positive_integer_scalar(N_trials, "N_trials")lapply(seq_len(cores), inner.do) single_arm <- is.null(hazard_control)
if (!single_arm) {20: rand_ratio <- validate_randomization_args(N_total, block, mclapply(X, FUN, ..., mc.cores = mc.cores, mc.preschedule = mc.preschedule, rand_ratio, allocation_name = "rand_ratio") mc.set.seed = mc.set.seed, mc.cleanup = mc.cleanup, mc.allow.recursive = mc.allow.recursive) Arguments$rand_ratio <- rand_ratio
}21: prop_loss <- normalize_prop_loss(prop_loss, single_arm = single_arm)pbmclapply(trial_index, survival_adapt_wrapper, mc.cores = workers) Arguments$prop_loss <- prop_loss
validate_logical_scalar(return_trace, "return_trace")22: validate_positive_integer_scalar(N_impute, "N_impute")(function (hazard_treatment, hazard_control = NULL, cutpoints = NULL, validate_positive_integer_scalar(N_mcmc, "N_mcmc") N_total, lambda = 0.3, lambda_time = NULL, interim_look = NULL, validate_single_probability(mc_conf_level, "mc_conf_level", end_of_study, prior_surv = c(0.1, 0.1), prior_bin = c(1, upper_open = TRUE) 1), bin_method = "mc", block = 2, rand_ratio = c(control = 1, if (mc_conf_level <= 0.5) { treatment = 1), prop_loss = 0, alternative = "greater", stop("'mc_conf_level' must be greater than 0.5 and less than 1") h0 = 0, Fn = 0.05, Sn = 0.9, prob_ha = 0.95, N_impute = 500, } N_mcmc = 1000, mc_conf_level = 0.95, N_trials = 10, method = "logrank", validate_final_imputation(method, imputed_final, has_missing_outcomes = any(prop_loss > imputed_final = FALSE, empty_interval = c("prior", "propagate", 0), N_impute = N_impute) "error"), return_trace = FALSE, ncores = 1L, backend = c("auto", if (identical(method, "rmst")) { "fork", "psock", "sequential"), seed = NULL, binary_imputation = c("event-time", validate_endpoint_time(end_of_study, cutpoints, "end_of_study") "bernoulli"), prior_surv_final = prior_surv, generation_cutpoints = cutpoints, validate_rmst_args(rmst_tau, end_of_study, h0) Qn = 1, rmst_tau = end_of_study) validate_analysis_configuration(method, alternative, { is.null(hazard_control), imputed_final) Call <- match.call() } Arguments <- capture_arguments(sim_trials, environment()) validate_positive_integer_scalar(ncores, "ncores") method <- normalize_analysis_method(method) execution <- resolve_sim_execution(backend = backend, ncores = ncores, Arguments$method <- method N_trials = N_trials) empty_interval <- match.arg(empty_interval) backend <- execution$backend binary_imputation <- match.arg(binary_imputation) workers <- execution$workers backend <- match.arg(backend) stream_seed <- NULL Arguments$empty_interval <- empty_interval if (!is.null(seed)) { Arguments$binary_imputation <- binary_imputation if (length(seed) != 1 || !is.numeric(seed) || is.na(seed) || Arguments$backend <- backend !is.finite(seed) || seed != floor(seed)) { requested_backend <- backend stop("'seed' must be NULL or a single integer value") caller_rng_kind <- RNGkind() } validate_positive_integer_scalar(N_trials, "N_trials") old_kind <- RNGkind() single_arm <- is.null(hazard_control) old_seed_exists <- exists(".Random.seed", envir = .GlobalEnv, if (!single_arm) { inherits = FALSE) rand_ratio <- validate_randomization_args(N_total, block, if (old_seed_exists) { rand_ratio, allocation_name = "rand_ratio") old_seed <- get(".Random.seed", envir = .GlobalEnv, Arguments$rand_ratio <- rand_ratio } inherits = FALSE) prop_loss <- normalize_prop_loss(prop_loss, single_arm = single_arm) } Arguments$prop_loss <- prop_loss on.exit({ validate_logical_scalar(return_trace, "return_trace") do.call(RNGkind, as.list(old_kind)) validate_positive_integer_scalar(N_impute, "N_impute") if (old_seed_exists) { validate_positive_integer_scalar(N_mcmc, "N_mcmc") assign(".Random.seed", old_seed, envir = .GlobalEnv) validate_single_probability(mc_conf_level, "mc_conf_level", } else if (exists(".Random.seed", envir = .GlobalEnv, upper_open = TRUE) inherits = FALSE)) { if (mc_conf_level <= 0.5) { rm(".Random.seed", envir = .GlobalEnv) stop("'mc_conf_level' must be greater than 0.5 and less than 1") } } }, add = TRUE) validate_final_imputation(method, imputed_final, has_missing_outcomes = any(prop_loss > stream_seed <- seed 0), N_impute = N_impute) trial_streams <- make_rng_streams(stream_seed, N_trials) if (identical(method, "rmst")) { } validate_endpoint_time(end_of_study, cutpoints, "end_of_study") else if (backend == "psock") { validate_rmst_args(rmst_tau, end_of_study, h0) stream_seed <- sample.int(.Machine$integer.max - 1L, validate_analysis_configuration(method, alternative, size = 1L) is.null(hazard_control), imputed_final) trial_streams <- make_rng_streams(stream_seed, N_trials) } } validate_positive_integer_scalar(ncores, "ncores") else { execution <- resolve_sim_execution(backend = backend, ncores = ncores, trial_streams <- NULL N_trials = N_trials) } backend <- execution$backend rng_metadata <- list(caller_kind = caller_rng_kind, stream_kind = if (is.null(trial_streams)) { workers <- execution$workers caller_rng_kind[1] stream_seed <- NULL } else { if (!is.null(seed)) { "L'Ecuyer-CMRG" if (length(seed) != 1 || !is.numeric(seed) || is.na(seed) || }, seed_policy = if (!is.null(seed)) { !is.finite(seed) || seed != floor(seed)) { "explicit_preserve_caller" stop("'seed' must be NULL or a single integer value") } else if (backend == "psock") { } "caller_derived_psock" old_kind <- RNGkind() } else { old_seed_exists <- exists(".Random.seed", envir = .GlobalEnv, "caller_state" inherits = FALSE) }, backend = backend, ncores = as.integer(workers), requested_ncores = as.integer(ncores), if (old_seed_exists) { old_seed <- get(".Random.seed", envir = .GlobalEnv, stream_seed = stream_seed) inherits = FALSE) survival_adapt_fn <- if (backend == "psock") { } make_psock_callable("survival_adapt") on.exit({ } else { do.call(RNGkind, as.list(old_kind)) survival_adapt if (old_seed_exists) { } assign(".Random.seed", old_seed, envir = .GlobalEnv) survival_adapt_wrapper <- function(x) { } else if (exists(".Random.seed", envir = .GlobalEnv, tryCatch({ inherits = FALSE)) { if (!is.null(trial_streams)) { rm(".Random.seed", envir = .GlobalEnv) assign(".Random.seed", trial_streams[[x]], envir = .GlobalEnv) } } }, add = TRUE) result <- survival_adapt_fn(hazard_treatment = hazard_treatment, stream_seed <- seed hazard_control = hazard_control, cutpoints = cutpoints, trial_streams <- make_rng_streams(stream_seed, N_trials) N_total = N_total, lambda = lambda, lambda_time = lambda_time, } interim_look = interim_look, end_of_study = end_of_study, else if (backend == "psock") { prior_surv = prior_surv, prior_bin = prior_bin, stream_seed <- sample.int(.Machine$integer.max - 1L, bin_method = bin_method, binary_imputation = binary_imputation, size = 1L) block = block, rand_ratio = rand_ratio, prop_loss = prop_loss, trial_streams <- make_rng_streams(stream_seed, N_trials) alternative = alternative, h0 = h0, Fn = Fn, } Sn = Sn, Qn = Qn, prob_ha = prob_ha, N_impute = N_impute, else { N_mcmc = N_mcmc, mc_conf_level = mc_conf_level, trial_streams <- NULL method = method, imputed_final = imputed_final, } empty_interval = empty_interval, return_trace = return_trace, rng_metadata <- list(caller_kind = caller_rng_kind, stream_kind = if (is.null(trial_streams)) { prior_surv_final = prior_surv_final, generation_cutpoints = generation_cutpoints, caller_rng_kind[1] rmst_tau = rmst_tau) } else { attr(result, "arguments") <- NULL "L'Ecuyer-CMRG" if (inherits(result, "goldilocks_trial")) { }, seed_policy = if (!is.null(seed)) { attr(result$summary, "arguments") <- NULL "explicit_preserve_caller" } } else if (backend == "psock") { list(trial = as.integer(x), result = result) "caller_derived_psock" }, error = function(error) { } else { list(trial = as.integer(x), result = NULL, error_class = class(error)[1L], "caller_state" message = conditionMessage(error)) }, backend = backend, ncores = as.integer(workers), requested_ncores = as.integer(ncores), }) } stream_seed = stream_seed) trial_index <- seq_len(N_trials) survival_adapt_fn <- if (backend == "psock") { trial_results <- switch(backend, sequential = lapply(trial_index, make_psock_callable("survival_adapt") } survival_adapt_wrapper), fork = pbmclapply(trial_index, else { survival_adapt_wrapper, mc.cores = workers), psock = { survival_adapt active_cluster <- make_sim_cluster(workers) } on.exit(stop_sim_cluster(active_cluster), add = TRUE) survival_adapt_wrapper <- function(x) { initialize_sim_cluster(active_cluster) tryCatch({ run_sim_cluster(active_cluster, trial_index, survival_adapt_wrapper) if (!is.null(trial_streams)) { }) assign(".Random.seed", trial_streams[[x]], envir = .GlobalEnv) failed <- vapply(trial_results, function(x) is.null(x$result), } logical(1)) failed_results <- trial_results[failed] result <- survival_adapt_fn(hazard_treatment = hazard_treatment, failures <- data.frame(trial = vapply(failed_results, `[[`, hazard_control = hazard_control, cutpoints = cutpoints, integer(1), "trial"), error_class = vapply(failed_results, N_total = N_total, lambda = lambda, lambda_time = lambda_time, `[[`, character(1), "error_class"), message = vapply(failed_results, interim_look = interim_look, end_of_study = end_of_study, `[[`, character(1), "message"), stringsAsFactors = FALSE) prior_surv = prior_surv, prior_bin = prior_bin, if (all(failed)) { bin_method = bin_method, binary_imputation = binary_imputation, error <- simpleError(paste0("All ", N_trials, " simulated trials failed. First error: ", block = block, rand_ratio = rand_ratio, prop_loss = prop_loss, failures$message[1L])) alternative = alternative, h0 = h0, Fn = Fn, error$failures <- failures Sn = Sn, Qn = Qn, prob_ha = prob_ha, N_impute = N_impute, class(error) <- c("goldilocks_all_trials_failed", class(error)) N_mcmc = N_mcmc, mc_conf_level = mc_conf_level, stop(error) method = method, imputed_final = imputed_final, } empty_interval = empty_interval, return_trace = return_trace, successful_trials <- trial_results[!failed] prior_surv_final = prior_surv_final, generation_cutpoints = generation_cutpoints, successful_results <- lapply(successful_trials, `[[`, "result") rmst_tau = rmst_tau) if (return_trace) { attr(result, "arguments") <- NULL sims <- bind_rows(lapply(successful_results, function(x) x$summary)) if (inherits(result, "goldilocks_trial")) { traces <- bind_rows(lapply(seq_along(successful_results), attr(result$summary, "arguments") <- NULL function(i) { } trace <- successful_results[[i]]$trace list(trial = as.integer(x), result = result) trial <- successful_trials[[i]]$trial }, error = function(error) { trace$trial <- rep.int(trial, nrow(trace)) list(trial = as.integer(x), result = NULL, error_class = class(error)[1L], trace[c("trial", setdiff(names(trace), "trial"))] message = conditionMessage(error)) })) }) out <- list(sims = sims, traces = traces, failures = failures, } call = Call) trial_index <- seq_len(N_trials) } trial_results <- switch(backend, sequential = lapply(trial_index, else { survival_adapt_wrapper), fork = pbmclapply(trial_index, sims <- bind_rows(successful_results) survival_adapt_wrapper, mc.cores = workers), psock = { out <- list(sims = sims, failures = failures, call = Call) active_cluster <- make_sim_cluster(workers) } on.exit(stop_sim_cluster(active_cluster), add = TRUE) attr(out$sims, "arguments") <- NULL initialize_sim_cluster(active_cluster) attr(out, "enrollment_design") <- new_enrollment_design(lambda = lambda, N_total = N_total, lambda_time = lambda_time, interim_look = interim_look, run_sim_cluster(active_cluster, trial_index, survival_adapt_wrapper) end_of_study = end_of_study) }) attr(out, "decision_design") <- attr(successful_results[[1]], failed <- vapply(trial_results, function(x) is.null(x$result), "decision_design", exact = TRUE) logical(1)) attr(out, "prior_design") <- attr(successful_results[[1]], failed_results <- trial_results[failed] "prior_design", exact = TRUE) failures <- data.frame(trial = vapply(failed_results, `[[`, attr(out, "rng_metadata") <- rng_metadata integer(1), "trial"), error_class = vapply(failed_results, attr(out, "arguments") <- Arguments `[[`, character(1), "error_class"), message = vapply(failed_results, attr(out, "parallel_metadata") <- list(requested_backend = requested_backend, `[[`, character(1), "message"), stringsAsFactors = FALSE) backend = backend, selection_reason = execution$reason, if (all(failed)) { requested_ncores = as.integer(ncores), workers = as.integer(workers), error <- simpleError(paste0("All ", N_trials, " simulated trials failed. First error: ", tasks = as.integer(N_trials)) if (nrow(failures) > 0L) { failures$message[1L])) warning(nrow(failures), " of ", N_trials, " simulated trials failed and were excluded. See `result$failures` ", error$failures <- failures "for details.", call. = FALSE) class(error) <- c("goldilocks_all_trials_failed", class(error)) } stop(error) return(out) }})(cutpoints = c(26, 52), generation_cutpoints = 52, N_total = 1000, successful_trials <- trial_results[!failed] lambda = c(0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6), lambda_time = c(4.33333333333333, successful_results <- lapply(successful_trials, `[[`, "result") 8.66666666666667, 13, 17.3333333333333, 21.6666666666667, if (return_trace) { 26), interim_look = c(400, 500, 600, 700, 800, 900), end_of_study = 69.3333333333333, sims <- bind_rows(lapply(successful_results, function(x) x$summary)) prior_surv = c(1, 144.927536231884, 1, 144.927536231884, traces <- bind_rows(lapply(seq_along(successful_results), 1, 285.714285714286), block = 3, rand_ratio = c(control = 1, function(i) { treatment = 2), prop_loss = 0.1, alternative = "less", h0 = 0, trace <- successful_results[[i]]$trace Fn = c(0.01, 0.01, 0.01, 0.01, 0.01, 0.01), Sn = c(1, 0.95, trial <- successful_trials[[i]]$trial 0.95, 0.95, 0.95, 0.95), prob_ha = 0.981, N_impute = 300, trace$trial <- rep.int(trial, nrow(trace)) mc_conf_level = 0.95, empty_interval = "prior", method = "logrank", trace[c("trial", setdiff(names(trace), "trial"))] imputed_final = FALSE, hazard_treatment = c(0.005796, 0.00168 })) ), hazard_control = c(0.00828, 0.0024), N_trials = 20, ncores = 2, out <- list(sims = sims, traces = traces, failures = failures, seed = 3425430) call = Call)
}23: else {do.call(sim_trials, c(anthem_common, list(hazard_treatment = hazard_treatment_target_week, sims <- bind_rows(successful_results) hazard_control = hazard_control_week, N_trials = 20, ncores = 2, out <- list(sims = sims, failures = failures, call = Call) seed = 3425430))) }
attr(out$sims, "arguments") <- NULL24: attr(out, "enrollment_design") <- new_enrollment_design(lambda = lambda, eval(expr, envir) N_total = N_total, lambda_time = lambda_time, interim_look = interim_look,
end_of_study = end_of_study)25: attr(out, "decision_design") <- attr(successful_results[[1]], eval(expr, envir) "decision_design", exact = TRUE)
attr(out, "prior_design") <- attr(successful_results[[1]], 26: "prior_design", exact = TRUE)withVisible(eval(expr, envir)) attr(out, "rng_metadata") <- rng_metadata
attr(out, "arguments") <- Arguments27: attr(out, "parallel_metadata") <- list(requested_backend = requested_backend, withCallingHandlers(code, error = function (e) backend = backend, selection_reason = execution$reason, rlang::entrace(e), message = function (cnd) requested_ncores = as.integer(ncores), workers = as.integer(workers), { tasks = as.integer(N_trials)) watcher$capture_plot_and_output() if (nrow(failures) > 0L) { warning(nrow(failures), " of ", N_trials, " simulated trials failed and were excluded. See `result$failures` ", if (on_message$capture) { "for details.", call. = FALSE) watcher$push(cnd) } } return(out) if (on_message$silence) {})(cutpoints = c(26, 52), generation_cutpoints = 52, N_total = 1000, invokeRestart("muffleMessage") lambda = c(0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6), lambda_time = c(4.33333333333333, } 8.66666666666667, 13, 17.3333333333333, 21.6666666666667, }, warning = function (cnd) 26), interim_look = c(400, 500, 600, 700, 800, 900), end_of_study = 69.3333333333333, { prior_surv = c(1, 144.927536231884, 1, 144.927536231884, if (getOption("warn") >= 2 || getOption("warn") < 0) { 1, 285.714285714286), block = 3, rand_ratio = c(control = 1, return() treatment = 2), prop_loss = 0.1, alternative = "less", h0 = 0, } Fn = c(0.01, 0.01, 0.01, 0.01, 0.01, 0.01), Sn = c(1, 0.95, watcher$capture_plot_and_output() 0.95, 0.95, 0.95, 0.95), prob_ha = 0.981, N_impute = 300, if (on_warning$capture) { mc_conf_level = 0.95, empty_interval = "prior", method = "logrank", cnd <- sanitize_call(cnd) imputed_final = FALSE, hazard_treatment = c(0.005796, 0.00168 watcher$push(cnd) ), hazard_control = c(0.00828, 0.0024), N_trials = 20, ncores = 2, } seed = 3425430) if (on_warning$silence) {
invokeRestart("muffleWarning")23: }do.call(sim_trials, c(anthem_common, list(hazard_treatment = hazard_treatment_target_week, }, error = function (cnd) hazard_control = hazard_control_week, N_trials = 20, ncores = 2, { seed = 3425430))) watcher$capture_plot_and_output()
cnd <- sanitize_call(cnd)24: watcher$push(cnd)eval(expr, envir) switch(on_error, continue = invokeRestart("eval_continue"),
stop = invokeRestart("eval_stop"), error = NULL)25: })eval(expr, envir)
28: 26: eval(call)withVisible(eval(expr, envir))
29: 27: withCallingHandlers(code, error = function (e) eval(call)rlang::entrace(e), message = function (cnd)
{30: watcher$capture_plot_and_output()with_handlers({ if (on_message$capture) { for (expr in tle$exprs) { watcher$push(cnd) ev <- withVisible(eval(expr, envir)) } watcher$capture_plot_and_output() if (on_message$silence) { watcher$print_value(ev$value, ev$visible, envir) invokeRestart("muffleMessage") } }}, warning = function (cnd) TRUE{}, handlers) if (getOption("warn") >= 2 || getOption("warn") < 0) {
return()31: }doWithOneRestart(return(expr), restart) watcher$capture_plot_and_output()
if (on_warning$capture) {32: cnd <- sanitize_call(cnd)withOneRestart(expr, restarts[[1L]]) watcher$push(cnd)
33: }withRestartList(expr, restarts[-nr]) if (on_warning$silence) {
invokeRestart("muffleWarning")34: }doWithOneRestart(return(expr), restart)}, error = function (cnd)
{35: watcher$capture_plot_and_output()withOneRestart(withRestartList(expr, restarts[-nr]), restarts[[nr]]) cnd <- sanitize_call(cnd)
watcher$push(cnd)36: switch(on_error, continue = invokeRestart("eval_continue"), withRestartList(expr, restarts) stop = invokeRestart("eval_stop"), error = NULL)
})37:
withRestarts(with_handlers({28: for (expr in tle$exprs) {eval(call) ev <- withVisible(eval(expr, envir))
watcher$capture_plot_and_output()29: watcher$print_value(ev$value, ev$visible, envir)eval(call) }
TRUE30: }, handlers), eval_continue = function() TRUE, eval_stop = function() FALSE)with_handlers({
for (expr in tle$exprs) {38: ev <- withVisible(eval(expr, envir))evaluate::evaluate(...) watcher$capture_plot_and_output()
watcher$print_value(ev$value, ev$visible, envir)39: }evaluate(code, envir = env, new_device = FALSE, keep_warning = if (is.numeric(options$warning)) TRUE else options$warning, TRUE keep_message = if (is.numeric(options$message)) TRUE else options$message, }, handlers) stop_on_error = if (is.numeric(options$error)) options$error else {
if (options$error && options$include) 31: 0L else 2LdoWithOneRestart(return(expr), restart) }, output_handler = knit_handlers(options$render, options))
32: 40: withOneRestart(expr, restarts[[1L]])in_dir(input_dir(), expr)
33: 41: withRestartList(expr, restarts[-nr])in_input_dir(evaluate(code, envir = env, new_device = FALSE,
keep_warning = if (is.numeric(options$warning)) TRUE else options$warning, 34: keep_message = if (is.numeric(options$message)) TRUE else options$message, doWithOneRestart(return(expr), restart) stop_on_error = if (is.numeric(options$error)) options$error else {
if (options$error && options$include) 35: 0LwithOneRestart(withRestartList(expr, restarts[-nr]), restarts[[nr]]) else 2L
}, output_handler = knit_handlers(options$render, options)))36:
withRestartList(expr, restarts)42:
eng_r(options)37:
43: withRestarts(with_handlers({block_exec(params) for (expr in tle$exprs) {
ev <- withVisible(eval(expr, envir))44: watcher$capture_plot_and_output()call_block(x) watcher$print_value(ev$value, ev$visible, envir)
}45: TRUEprocess_group(group)}, handlers), eval_continue = function() TRUE, eval_stop = function() FALSE)
46: 38: withCallingHandlers(if (tangle) process_tangle(group) else process_group(group), evaluate::evaluate(...) error = function(e) {
if (progress && is.function(pb$interrupt)) 39: pb$interrupt()evaluate(code, envir = env, new_device = FALSE, keep_warning = if (is.numeric(options$warning)) TRUE else options$warning, if (is_R_CMD_build() || is_R_CMD_check()) keep_message = if (is.numeric(options$message)) TRUE else options$message, error <<- format(e) stop_on_error = if (is.numeric(options$error)) options$error else { }) if (options$error && options$include)
0L47: else 2Lwith_options(withCallingHandlers(if (tangle) process_tangle(group) else process_group(group), }, output_handler = knit_handlers(options$render, options)) error = function(e) {
if (progress && is.function(pb$interrupt)) 40: pb$interrupt()in_dir(input_dir(), expr) if (is_R_CMD_build() || is_R_CMD_check())
error <<- format(e)41: }), list(rlang_trace_top_env = knit_global()))in_input_dir(evaluate(code, envir = env, new_device = FALSE,
keep_warning = if (is.numeric(options$warning)) TRUE else options$warning, 48: keep_message = if (is.numeric(options$message)) TRUE else options$message, xfun:::handle_error(with_options(withCallingHandlers(if (tangle) process_tangle(group) else process_group(group), stop_on_error = if (is.numeric(options$error)) options$error else { error = function(e) { if (options$error && options$include) if (progress && is.function(pb$interrupt)) 0L pb$interrupt() else 2L if (is_R_CMD_build() || is_R_CMD_check()) }, output_handler = knit_handlers(options$render, options))) error <<- format(e)
}), list(rlang_trace_top_env = knit_global())), function(loc) {42: setwd(wd)eng_r(options) write_utf8(res, output %n% stdout())
paste0("\nQuitting from ", loc, if (!is.null(error)) 43: paste0("\n", rule(), error, "\n", rule()))block_exec(params)}, if (labels[i] != "") sprintf(" [%s]", labels[i]), get_loc)
44: 49: call_block(x)process_file(text, output)
45: 50: process_group(group)knitr::knit(knit_input, knit_output, envir = envir, quiet = quiet)
46: 51: withCallingHandlers(if (tangle) process_tangle(group) else process_group(group), rmarkdown::render(file, encoding = encoding, quiet = quiet, envir = globalenv(), error = function(e) { output_dir = getwd(), ...) if (progress && is.function(pb$interrupt))
pb$interrupt()52: if (is_R_CMD_build() || is_R_CMD_check()) vweave_rmarkdown(...) error <<- format(e)
})53:
engine$weave(file, quiet = quiet, encoding = enc)47:
with_options(withCallingHandlers(if (tangle) process_tangle(group) else process_group(group), 54: error = function(e) {doTryCatch(return(expr), name, parentenv, handler) if (progress && is.function(pb$interrupt))
pb$interrupt()55: if (is_R_CMD_build() || is_R_CMD_check()) tryCatchOne(expr, names, parentenv, handlers[[1L]]) error <<- format(e)
}), list(rlang_trace_top_env = knit_global()))56:
tryCatchList(expr, classes, parentenv, handlers)48:
xfun:::handle_error(with_options(withCallingHandlers(if (tangle) process_tangle(group) else process_group(group), 57: error = function(e) {tryCatch({ if (progress && is.function(pb$interrupt)) engine$weave(file, quiet = quiet, encoding = enc) pb$interrupt() setwd(startdir) if (is_R_CMD_build() || is_R_CMD_check()) output <- find_vignette_product(name, by = "weave", engine = engine) error <<- format(e) if (!have.makefile && vignette_is_tex(output)) { }), list(rlang_trace_top_env = knit_global())), function(loc) { texi2pdf(file = output, clean = FALSE, quiet = quiet) setwd(wd) output <- find_vignette_product(name, by = "texi2pdf", write_utf8(res, output %n% stdout()) engine = engine) paste0("\nQuitting from ", loc, if (!is.null(error)) } paste0("\n", rule(), error, "\n", rule()))}, error = function(e) {}, if (labels[i] != "") sprintf(" [%s]", labels[i]), get_loc) OK <<- FALSE
message(gettextf("Error: processing vignette '%s' failed with diagnostics:\n%s", 49: file, conditionMessage(e)))process_file(text, output)})
50: 58: knitr::knit(knit_input, knit_output, envir = envir, quiet = quiet)tools:::.buildOneVignette("anthem-hfref.Rmd", "/Volumes/Builds/packages/big-sur-arm64/results/4.5/goldilocks.Rcheck/vign_test/goldilocks",
TRUE, TRUE, "anthem-hfref", "UTF-8", "/Volumes/Temp/tmp/RtmpxYag8g/file55b07e4cf63e.rds")51:
rmarkdown::render(file, encoding = encoding, quiet = quiet, envir = globalenv(), An irrecoverable exception occurred. R is aborting now ...
output_dir = getwd(), ...)
52: vweave_rmarkdown(...)
53: engine$weave(file, quiet = quiet, encoding = enc)
54: doTryCatch(return(expr), name, parentenv, handler)
55: tryCatchOne(expr, names, parentenv, handlers[[1L]])
56: tryCatchList(expr, classes, parentenv, handlers)
57: tryCatch({ engine$weave(file, quiet = quiet, encoding = enc) setwd(startdir) output <- find_vignette_product(name, by = "weave", engine = engine) if (!have.makefile && vignette_is_tex(output)) { texi2pdf(file = output, clean = FALSE, quiet = quiet) output <- find_vignette_product(name, by = "texi2pdf", engine = engine) }}, error = function(e) { OK <<- FALSE message(gettextf("Error: processing vignette '%s' failed with diagnostics:\n%s", file, conditionMessage(e)))})
58: tools:::.buildOneVignette("anthem-hfref.Rmd", "/Volumes/Builds/packages/big-sur-arm64/results/4.5/goldilocks.Rcheck/vign_test/goldilocks", TRUE, TRUE, "anthem-hfref", "UTF-8", "/Volumes/Temp/tmp/RtmpxYag8g/file55b07e4cf63e.rds")
An irrecoverable exception occurred. R is aborting now ...
Quitting from anthem-hfref.Rmd:432-482 [small-operating-characteristics]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
<error/rlang_error>
Error in `vapply()`:
! values must be length 1,
but FUN(X[[1]]) result is length 0
---
Backtrace:
▆
1. ├─base::do.call(...)
2. └─goldilocks (local) `<fn>`(...)
3. ├─base::data.frame(...)
4. └─base::vapply(failed_results, `[[`, integer(1), "trial")
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Error: processing vignette 'anthem-hfref.Rmd' failed with diagnostics:
values must be length 1,
but FUN(X[[1]]) result is length 0
--- failed re-building ‘anthem-hfref.Rmd’
--- re-building ‘architecture.Rmd’ using rmarkdown
--- finished re-building ‘architecture.Rmd’
--- re-building ‘bayes-piecewise.Rmd’ using rmarkdown
--- finished re-building ‘bayes-piecewise.Rmd’
--- re-building ‘bayesian-binary.Rmd’ using rmarkdown
--- finished re-building ‘bayesian-binary.Rmd’
--- re-building ‘calibrating-prob-ha.Rmd’ using rmarkdown
2026-10-17 15:12:21.098 R[25934:341663] XType: Using static font registry.
--- finished re-building ‘calibrating-prob-ha.Rmd’
--- re-building ‘decision-traces.Rmd’ using rmarkdown
2026-10-17 15:12:23.183 R[26718:342740] XType: Using static font registry.
--- finished re-building ‘decision-traces.Rmd’
--- re-building ‘frequentist-binary.Rmd’ using rmarkdown
--- finished re-building ‘frequentist-binary.Rmd’
--- re-building ‘interim-data.Rmd’ using rmarkdown
--- finished re-building ‘interim-data.Rmd’
--- re-building ‘rmst.Rmd’ using rmarkdown
--- finished re-building ‘rmst.Rmd’
--- re-building ‘single-arm.Rmd’ using rmarkdown
--- finished re-building ‘single-arm.Rmd’
--- re-building ‘technical-methods.Rmd’ using rmarkdown
--- finished re-building ‘technical-methods.Rmd’
--- re-building ‘thermocool-af.Rmd’ using rmarkdown
2026-10-17 15:12:36.497 R[29218:346526] XType: Using static font registry.
--- finished re-building ‘thermocool-af.Rmd’
--- re-building ‘two-arm.Rmd’ using rmarkdown
2026-10-17 15:12:38.551 R[30502:348356] XType: Using static font registry.
--- finished re-building ‘two-arm.Rmd’
SUMMARY: processing the following files failed:
‘advent.Rmd’ ‘anthem-hfref.Rmd’
Error: Vignette re-building failed.
Execution halted
Flavor: r-oldrel-macos-arm64