Skip to content

cbcTools

Design and Analyze Choice-Based Conjoint Experiments

v0.7.1 · Oct 20, 2025 · MIT + file LICENSE

Description

Design and evaluate choice-based conjoint survey experiments. Generate a variety of survey designs, including random designs, frequency-based designs, and D-optimal designs, as well as "labeled" designs (also known as "alternative-specific designs"), designs with "no choice" options, and designs with dominant alternatives removed. Conveniently inspect and compare designs using a variety of metrics, including design balance, overlap, and D-error, and simulate choice data for a survey design either randomly or according to a utility model defined by user-provided prior parameters. Conduct a power analysis for a given survey design by estimating the same model on different subsets of the data to simulate different sample sizes. Bayesian D-efficient designs using the 'cea' and 'modfed' methods are obtained using the 'idefix' package by Traets et al (2020) <doi:10.18637/jss.v096.i03>. Choice simulation and model estimation in power analyses are handled using the 'logitr' package by Helveston (2023) <doi:10.18637/jss.v105.i10>.

Downloads

477

Last 30 days

7607th

813

Last 90 days

813

Last year

Trend: +42% (30d vs prior 30d)

CRAN Check Status

1 ERROR
13 OK
Show all 14 flavors
Flavor Status
r-devel-linux-x86_64-debian-clang OK
r-devel-linux-x86_64-debian-gcc OK
r-devel-linux-x86_64-fedora-clang OK
r-devel-linux-x86_64-fedora-gcc OK
r-devel-macos-arm64 ERROR
r-devel-windows-x86_64 OK
r-oldrel-macos-arm64 OK
r-oldrel-macos-x86_64 OK
r-oldrel-windows-x86_64 OK
r-patched-linux-x86_64 OK
r-release-linux-x86_64 OK
r-release-macos-arm64 OK
r-release-macos-x86_64 OK
r-release-windows-x86_64 OK
Check details (14 non-OK)
OK r-devel-linux-x86_64-debian-clang

*


            
OK r-devel-linux-x86_64-debian-gcc

*


            
OK r-devel-linux-x86_64-fedora-clang

*


            
OK r-devel-linux-x86_64-fedora-gcc

*


            
ERROR r-devel-macos-arm64

re-building of vignette outputs

Error(s) in re-building vignettes:
--- re-building ‘choices.Rmd’ using rmarkdown
--- finished re-building ‘choices.Rmd’

--- re-building ‘d_error.Rmd’ using rmarkdown
--- finished re-building ‘d_error.Rmd’

--- re-building ‘design.Rmd’ using rmarkdown
--- finished re-building ‘design.Rmd’

--- re-building ‘encoding.Rmd’ using rmarkdown
--- finished re-building ‘encoding.Rmd’

--- re-building ‘getting-started.Rmd’ using rmarkdown

 *** caught segfault ***
address 0x110, cause 'invalid permissions'

Traceback:
 1: getV(coefs, data$X, data$scalePar)
 2: getMnlProbs(object, data, obsID, interval, level, numDrawsCI,     getV, getVDraws)
 3: predict.logitr(model)
 4: stats::predict(model)
 5: logitr::logitr(data = data_subset, outcome = outcome, obsID = obsID,     pars = pars, randPars = randPars, panelID = panelID, ...)
 6: doTryCatch(return(expr), name, parentenv, handler)
 7: tryCatchOne(expr, names, parentenv, handlers[[1L]])
 8: tryCatchList(expr, classes, parentenv, handlers)
 9: tryCatch({    model <- logitr::logitr(data = data_subset, outcome = outcome,         obsID = obsID, pars = pars, randPars = randPars, panelID = panelID,         ...)    model$sample_size <- unique(data_subset$sample_size)    return(model)}, error = function(e) {    return(NULL)})
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: parallel::mclapply(data_list, estimate_single_model, mc.cores = n_cores)
21: withCallingHandlers(expr, warning = function(w) if (inherits(w,     classes)) tryInvokeRestart("muffleWarning"))
22: suppressWarnings({    models <- parallel::mclapply(data_list, estimate_single_model,         mc.cores = n_cores)})
23: withCallingHandlers(expr, message = function(c) if (inherits(c,     classes)) tryInvokeRestart("muffleMessage"))
24: suppressMessages(suppressWarnings({    models <- parallel::mclapply(data_list, estimate_single_model,         mc.cores = n_cores)}))
25: estimate_models_parallel_internal(data_list, outcome, obsID,     pars, randPars, panelID, n_cores, ...)
26: estimate_models_parallel(data_list, outcome, obsID, pars, randPars,     panelID, n_cores, ...)
27: cbc_power(choices)
28: eval(expr, envir)
29: eval(expr, envir)
30: withVisible(eval(expr, envir))
31: 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)})
32: eval(call)
33: eval(call)
34: 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)
35: doWithOneRestart(return(expr), restart)
36: withOneRestart(expr, restarts[[1L]])
37: withRestartList(expr, restarts[-nr])
38: doWithOneRestart(return(expr), restart)
39: withOneRestart(withRestartList(expr, restarts[-nr]), restarts[[nr]])
40: withRestartList(expr, restarts)
41: 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)
42: evaluate::evaluate(...)
43: 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))
44: in_dir(input_dir(), expr)
45: 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)))
46: eng_r(options)
47: block_exec(params)
48: call_block(x)
49: process_group(group)
50: 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)    })
51: 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()))
52: 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)
53: process_file(text, output)
54: knitr::knit(knit_input, knit_output, envir = envir, quiet = quiet)
55: rmarkdown::render(file, encoding = encoding, quiet = quiet, envir = globalenv(),     output_dir = getwd(), ...)
56: vweave_rmarkdown(...)
57: engine$weave(file, quiet = quiet, encoding = enc)
58: doTryCatch(return(expr), name, parentenv, handler)
59: tryCatchOne(expr, names, parentenv, handlers[[1L]])
60: tryCatchList(expr, classes, parentenv, handlers)
61: 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)))})
62: tools:::.buildOneVignette("getting-started.Rmd", "/Volumes/Builds/packages/sonoma-arm64/results/4.6/cbcTools.Rcheck/vign_test/cbcTools",     TRUE, FALSE, "getting-started", "UTF-8", "/Volumes/Temp/tmp/Rtmp3zu2vE/file9fd26d44d773.rds")
An irrecoverable exception occurred. R is aborting now ...
Warning in file("", "w+b") :
  cannot open file '/Volumes/Temp/tmp/RtmpobLhIo/Rfa23a13a0e657': No such file or directory

Quitting from getting-started.Rmd:178-181 [unnamed-chunk-8]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cannot open the connection
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


Quitting from getting-started.Rmd:178-181 [unnamed-chunk-8]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
file("", "w+b")
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Error: processing vignette 'getting-started.Rmd' failed with diagnostics:
cannot open the connection
--- failed re-building ‘getting-started.Rmd’

--- re-building ‘power.Rmd’ using rmarkdown

 *** caught segfault ***
address 0x110, cause 'invalid permissions'

 *** caught segfault ***
address 0x110, cause 'invalid permissions'

Traceback:
 1: getV(coefs, data$X, data$scalePar)
 2: getMnlProbs(object, data, obsID, interval, level, numDrawsCI,     getV, getVDraws)
 3: predict.logitr(model)
 4: stats::predict(model)
 5: logitr::logitr(data = data_subset, outcome = outcome, obsID = obsID,     pars = pars, randPars = randPars, panelID = panelID, ...)
 6: doTryCatch(return(expr), name, parentenv, handler)
 7: tryCatchOne(expr, names, parentenv, handlers[[1L]])
 8: tryCatchList(expr, classes, parentenv, handlers)
 9: tryCatch({    model <- logitr::logitr(data = data_subset, outcome = outcome,         obsID = obsID, pars = pars, randPars = randPars, panelID = panelID,         ...)    model$sample_size <- unique(data_subset$sample_size)    return(model)}, error = function(e) {    return(NULL)})
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: parallel::mclapply(data_list, estimate_single_model, mc.cores = n_cores)
21: withCallingHandlers(expr, warning = function(w) if (inherits(w,     classes)) tryInvokeRestart("muffleWarning"))
22: suppressWarnings({    models <- parallel::mclapply(data_list, estimate_single_model,         mc.cores = n_cores)})
23: withCallingHandlers(expr, message = function(c) if (inherits(c,     classes)) tryInvokeRestart("muffleMessage"))
24: suppressMessages(suppressWarnings({    models <- parallel::mclapply(data_list, estimate_single_model,         mc.cores = n_cores)}))
25: estimate_models_parallel_internal(data_list, outcome, obsID,     pars, randPars, panelID, n_cores, ...)
26: estimate_models_parallel(data_list, outcome, obsID, pars, randPars,     panelID, n_cores, ...)
27: cbc_power(data = choices, outcome = "choice", obsID = "obsID",     n_q = 6, n_breaks = 10)
28: eval(expr, envir)
29: eval(expr, envir)
30: withVisible(eval(expr, envir))
31: 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)})
32: eval(call)
33: eval(call)
34: 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)
35: doWithOneRestart(return(expr), restart)
36: withOneRestart(expr, restarts[[1L]])
37: withRestartList(expr, restarts[-nr])
38: doWithOneRestart(return(expr), restart)
39: withOneRestart(withRestartList(expr, restarts[-nr]), restarts[[nr]])
40: withRestartList(expr, restarts)
41: 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)
42: evaluate::evaluate(...)
43: 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))
44: in_dir(input_dir(), expr)
45: 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)))
46: eng_r(options)
47: block_exec(params)
48: call_block(x)
49: process_group(group)
50: 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)    })
51: 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()))
52: 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)
53: process_file(text, output)
54: knitr::knit(knit_input, knit_output, envir = envir, quiet = quiet)
55: rmarkdown::render(file, encoding = encoding, quiet = quiet, envir = globalenv(),     output_dir = getwd(), ...)
56: vweave_rmarkdown(...)
57: engine$weave(file, quiet = quiet, encoding = enc)
58: doTryCatch(return(expr), name, parentenv, handler)
59: tryCatchOne(expr, names, parentenv, handlers[[1L]])
60: tryCatchList(expr, classes, parentenv, handlers)
61: 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)))})
62: tools:::.buildOneVignette("power.Rmd", "/Volumes/Builds/packages/sonoma-arm64/results/4.6/cbcTools.Rcheck/vign_test/cbcTools",     TRUE, FALSE, "power", "UTF-8", "/Volumes/Temp/tmp/Rtmp3zu2vE/file9fd255e1520b.rds")
An irrecoverable exception occurred. R is aborting now ...

Traceback:
 1: getV(coefs, data$X, data$scalePar)
 2: getMnlProbs(object, data, obsID, interval, level, numDrawsCI,     getV, getVDraws)
 3: predict.logitr(model)
 4: stats::predict(model)
 5: logitr::logitr(data = data_subset, outcome = outcome, obsID = obsID,     pars = pars, randPars = randPars, panelID = panelID, ...)
 6: doTryCatch(return(expr), name, parentenv, handler)
 7: tryCatchOne(expr, names, parentenv, handlers[[1L]])
 8: tryCatchList(expr, classes, parentenv, handlers)
 9: tryCatch({    model <- logitr::logitr(data = data_subset, outcome = outcome,         obsID = obsID, pars = pars, randPars = randPars, panelID = panelID,         ...)    model$sample_size <- unique(data_subset$sample_size)    return(model)}, error = function(e) {    return(NULL)})
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: parallel::mclapply(data_list, estimate_single_model, mc.cores = n_cores)
21: withCallingHandlers(expr, warning = function(w) if (inherits(w,     classes)) tryInvokeRestart("muffleWarning"))
22: suppressWarnings({    models <- parallel::mclapply(data_list, estimate_single_model,         mc.cores = n_cores)})
23: withCallingHandlers(expr, message = function(c) if (inherits(c,     classes)) tryInvokeRestart("muffleMessage"))
24: suppressMessages(suppressWarnings({    models <- parallel::mclapply(data_list, estimate_single_model,         mc.cores = n_cores)}))
25: estimate_models_parallel_internal(data_list, outcome, obsID,     pars, randPars, panelID, n_cores, ...)
26: estimate_models_parallel(data_list, outcome, obsID, pars, randPars,     panelID, n_cores, ...)
27: cbc_power(data = choices, outcome = "choice", obsID = "obsID",     n_q = 6, n_breaks = 10)
28: eval(expr, envir)
29: eval(expr, envir)
30: withVisible(eval(expr, envir))
31: 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)})
32: eval(call)
33: eval(call)
34: 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)
35: doWithOneRestart(return(expr), restart)
36: withOneRestart(expr, restarts[[1L]])
37: withRestartList(expr, restarts[-nr])
38: doWithOneRestart(return(expr), restart)
39: withOneRestart(withRestartList(expr, restarts[-nr]), restarts[[nr]])
40: withRestartList(expr, restarts)
41: 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)
42: evaluate::evaluate(...)
43: 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))
44: in_dir(input_dir(), expr)
45: 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)))
46: eng_r(options)
47: block_exec(params)
48: call_block(x)
49: process_group(group)
50: 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)    })
51: 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()))
52: 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)
53: process_file(text, output)
54: knitr::knit(knit_input, knit_output, envir = envir, quiet = quiet)
55: rmarkdown::render(file, encoding = encoding, quiet = quiet, envir = globalenv(),     output_dir = getwd(), ...)
56: vweave_rmarkdown(...)
57: engine$weave(file, quiet = quiet, encoding = enc)
58: doTryCatch(return(expr), name, parentenv, handler)
59: tryCatchOne(expr, names, parentenv, handlers[[1L]])
60: tryCatchList(expr, classes, parentenv, handlers)
61: 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)))})
62: tools:::.buildOneVignette("power.Rmd", "/Volumes/Builds/packages/sonoma-arm64/results/4.6/cbcTools.Rcheck/vign_test/cbcTools",     TRUE, FALSE, "power", "UTF-8", "/Volumes/Temp/tmp/Rtmp3zu2vE/file9fd255e1520b.rds")
An irrecoverable exception occurred. R is aborting now ...

 *** caught segfault ***
address 0x110, cause 'invalid permissions'

Traceback:
 1: getV(coefs, data$X, data$scalePar)
 2: getMnlProbs(object, data, obsID, interval, level, numDrawsCI,     getV, getVDraws)
 3: predict.logitr(model)
 4: stats::predict(model)
 5: logitr::logitr(data = data_subset, outcome = outcome, obsID = obsID,     pars = pars, randPars = randPars, panelID = panelID, ...)
 6: doTryCatch(return(expr), name, parentenv, handler)
 7: tryCatchOne(expr, names, parentenv, handlers[[1L]])
 8: tryCatchList(expr, classes, parentenv, handlers)
 9: tryCatch({    model <- logitr::logitr(data = data_subset, outcome = outcome,         obsID = obsID, pars = pars, randPars = randPars, panelID = panelID,         ...)    model$sample_size <- unique(data_subset$sample_size)    return(model)}, error = function(e) {    return(NULL)})
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: parallel::mclapply(data_list, estimate_single_model, mc.cores = n_cores)
21: withCallingHandlers(expr, warning = function(w) if (inherits(w,     classes)) tryInvokeRestart("muffleWarning"))
22: suppressWarnings({    models <- parallel::mclapply(data_list, estimate_single_model,         mc.cores = n_cores)})
23: withCallingHandlers(expr, message = function(c) if (inherits(c,     classes)) tryInvokeRestart("muffleMessage"))
24: suppressMessages(suppressWarnings({    models <- parallel::mclapply(data_list, estimate_single_model,         mc.cores = n_cores)}))
25: estimate_models_parallel_internal(data_list, outcome, obsID,     pars, randPars, panelID, n_cores, ...)
26: estimate_models_parallel(data_list, outcome, obsID, pars, randPars,     panelID, n_cores, ...)
27: cbc_power(data = choices, outcome = "choice", obsID = "obsID",     n_q = 6, n_breaks = 10)
28: eval(expr, envir)
29: eval(expr, envir)
30: withVisible(eval(expr, envir))
31: 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)})
32: eval(call)
33: eval(call)
34: 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)
35: doWithOneRestart(return(expr), restart)
36: withOneRestart(expr, restarts[[1L]])
37: withRestartList(expr, restarts[-nr])
38: doWithOneRestart(return(expr), restart)
39: withOneRestart(withRestartList(expr, restarts[-nr]), restarts[[nr]])
40: withRestartList(expr, restarts)
41: 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)
42: evaluate::evaluate(...)
43: 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))
44: in_dir(input_dir(), expr)
45: 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)))
46: eng_r(options)
47: block_exec(params)
48: call_block(x)
49: process_group(group)
50: 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)    })
51: 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()))
52: 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)
53: process_file(text, output)
54: knitr::knit(knit_input, knit_output, envir = envir, quiet = quiet)
55: rmarkdown::render(file, encoding = encoding, quiet = quiet, envir = globalenv(),     output_dir = getwd(), ...)
56: vweave_rmarkdown(...)
57: engine$weave(file, quiet = quiet, encoding = enc)
58: doTryCatch(return(expr), name, parentenv, handler)
59: tryCatchOne(expr, names, parentenv, handlers[[1L]])
60: tryCatchList(expr, classes, parentenv, handlers)
61: 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)))})
62: tools:::.buildOneVignette("power.Rmd", "/Volumes/Builds/packages/sonoma-arm64/results/4.6/cbcTools.Rcheck/vign_test/cbcTools",     TRUE, FALSE, "power", "UTF-8", "/Volumes/Temp/tmp/Rtmp3zu2vE/file9fd255e1520b.rds")
An irrecoverable exception occurred. R is aborting now ...

 *** caught segfault ***
address 0x110, cause 'invalid permissions'

Traceback:
 1: getV(coefs, data$X, data$scalePar)
 2: getMnlProbs(object, data, obsID, interval, level, numDrawsCI,     getV, getVDraws)
 3: predict.logitr(model)
 4: stats::predict(model)
 5: logitr::logitr(data = data_subset, outcome = outcome, obsID = obsID,     pars = pars, randPars = randPars, panelID = panelID, ...)
 6: doTryCatch(return(expr), name, parentenv, handler)
 7: tryCatchOne(expr, names, parentenv, handlers[[1L]])
 8: tryCatchList(expr, classes, parentenv, handlers)
 9: tryCatch({    model <- logitr::logitr(data = data_subset, outcome = outcome,         obsID = obsID, pars = pars, randPars = randPars, panelID = panelID,         ...)    model$sample_size <- unique(data_subset$sample_size)    return(model)}, error = function(e) {    return(NULL)})
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: parallel::mclapply(data_list, estimate_single_model, mc.cores = n_cores)
21: withCallingHandlers(expr, warning = function(w) if (inherits(w,     classes)) tryInvokeRestart("muffleWarning"))
22: suppressWarnings({    models <- parallel::mclapply(data_list, estimate_single_model,         mc.cores = n_cores)})
23: withCallingHandlers(expr, message = function(c) if (inherits(c,     classes)) tryInvokeRestart("muffleMessage"))
24: suppressMessages(suppressWarnings({    models <- parallel::mclapply(data_list, estimate_single_model,         mc.cores = n_cores)}))
25: estimate_models_parallel_internal(data_list, outcome, obsID,     pars, randPars, panelID, n_cores, ...)
26: estimate_models_parallel(data_list, outcome, obsID, pars, randPars,     panelID, n_cores, ...)
27: cbc_power(data = choices, outcome = "choice", obsID = "obsID",     n_q = 6, n_breaks = 10)
28: eval(expr, envir)
29: eval(expr, envir)
30: withVisible(eval(expr, envir))
31: 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)})
32: eval(call)
33: eval(call)
34: 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)
35: doWithOneRestart(return(expr), restart)
36: withOneRestart(expr, restarts[[1L]])
37: withRestartList(expr, restarts[-nr])
38: doWithOneRestart(return(expr), restart)
39: withOneRestart(withRestartList(expr, restarts[-nr]), restarts[[nr]])
40: withRestartList(expr, restarts)
41: 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)
42: evaluate::evaluate(...)
43: 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))
44: in_dir(input_dir(), expr)
45: 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)))
46: eng_r(options)
47: block_exec(params)
48: call_block(x)
49: process_group(group)
50: 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)    })
51: 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()))
52: 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)
53: process_file(text, output)
54: knitr::knit(knit_input, knit_output, envir = envir, quiet = quiet)
55: rmarkdown::render(file, encoding = encoding, quiet = quiet, envir = globalenv(),     output_dir = getwd(), ...)
56: vweave_rmarkdown(...)
57: engine$weave(file, quiet = quiet, encoding = enc)
58: doTryCatch(return(expr), name, parentenv, handler)
59: tryCatchOne(expr, names, parentenv, handlers[[1L]])
60: tryCatchList(expr, classes, parentenv, handlers)
61: 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)))})
62: tools:::.buildOneVignette("power.Rmd", "/Volumes/Builds/packages/sonoma-arm64/results/4.6/cbcTools.Rcheck/vign_test/cbcTools",     TRUE, FALSE, "power", "UTF-8", "/Volumes/Temp/tmp/Rtmp3zu2vE/file9fd255e1520b.rds")
An irrecoverable exception occurred. R is aborting now ...
Warning in file("", "w+b") :
  cannot open file '/Volumes/Temp/tmp/Rtmp8jH4z0/Rfa2e8459f2e9': No such file or directory

Quitting from power.Rmd:114-127 [unnamed-chunk-3]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cannot open the connection
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


Quitting from power.Rmd:114-127 [unnamed-chunk-3]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
file("", "w+b")
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Error: processing vignette 'power.Rmd' failed with diagnostics:
cannot open the connection
--- failed re-building ‘power.Rmd’

--- re-building ‘priors.Rmd’ using rmarkdown
--- finished re-building ‘priors.Rmd’

--- re-building ‘profiles.Rmd’ using rmarkdown
--- finished re-building ‘profiles.Rmd’

SUMMARY: processing the following files failed:
  ‘getting-started.Rmd’ ‘power.Rmd’

Error: Vignette re-building failed.
Execution halted
OK r-devel-windows-x86_64

*


            
OK r-oldrel-macos-arm64

*


            
OK r-oldrel-macos-x86_64

*


            
OK r-oldrel-windows-x86_64

*


            
OK r-patched-linux-x86_64

*


            
OK r-release-linux-x86_64

*


            
OK r-release-macos-arm64

*


            
OK r-release-macos-x86_64

*


            
OK r-release-windows-x86_64

*


            

Check History

ERROR 13 OK · 0 NOTE · 0 WARNING · 1 ERROR · 0 FAILURE Mar 9, 2026
ERROR r-devel-macos-arm64

re-building of vignette outputs

Error(s) in re-building vignettes:
--- re-building ‘choices.Rmd’ using rmarkdown
--- finished re-building ‘choices.Rmd’

--- re-building ‘d_error.Rmd’ using rmarkdown
--- finished re-building ‘d_error.Rmd’

--- re-building ‘design.Rmd’ using rmarkdown
--- finished re-building ‘design.Rmd’

--- re-building ‘encoding.Rmd’ using rmarkdown
--- finished re-building ‘encoding.Rmd’

--- re-building ‘getting-started.Rmd’ using rmarkdown

 *** caught segfault ***
address 0x110, cause 'invalid permissions

Dependency Network

Dependencies Reverse dependencies fastDummies ggplot2 idefix logitr randtoolbox rlang cbcTools

Version History

new 0.7.1 Mar 9, 2026