| ctSweepM | R Documentation |
Performs a grid search over thresholds of multiple X variables.
For each combination of thresholds in sweep_list, the outcome Y
and all X variables are binarized, and a crisp-set QCA is executed.
ctSweepM(
dat,
outcome = NULL,
conditions = NULL,
sweep_list,
thrY,
pre_calibrated = NULL,
dir.exp = NULL,
include = "",
incl.cut = 0.8,
n.cut = 1,
pri.cut = 0,
extract_mode = c("first", "all", "essential"),
return_details = TRUE,
Yvar = NULL,
Xvars = NULL
)
dat |
Data frame containing the outcome and condition variables. |
outcome |
Character. Outcome variable name. Supports negation with
tilde prefix (e.g., |
conditions |
Character vector. Names of condition variables. |
sweep_list |
Named list. Each element is a numeric vector of
candidate thresholds for the corresponding X. Names must match
|
thrY |
Numeric. Threshold for Y (fixed). |
pre_calibrated |
Character vector or |
dir.exp |
Directional expectations for |
include |
Inclusion rule for |
incl.cut |
Consistency cutoff for |
n.cut |
Frequency cutoff for |
pri.cut |
PRI cutoff for |
extract_mode |
Character. How to handle multiple solutions:
|
return_details |
Logical. If |
Yvar |
Deprecated. Use |
Xvars |
Deprecated. Use |
If return_details = FALSE, a data frame with columns:
combo_id — index of the threshold combination
threshold — character string summarizing thresholds,
e.g. "X1=6, X2=7, X3=7"
expression — minimized solution expression
inclS — solution consistency
covS — solution coverage
(additional columns depending on extract_mode)
If return_details = TRUE, a list with:
summary — the data frame above
details — per-combination list of
combo_id, thrX_vec, truth_table, solution
# Load sample data
data(sample_data)
# === Three Types of QCA Solutions ===
# Quick demonstration with 2 conditions
sweep_list <- list(X1 = 7, X2 = 7)
# 1. Complex Solution (default, QCA compatible)
result_comp <- ctSweepM(
dat = sample_data,
outcome = "Y",
conditions = c("X1", "X2"),
sweep_list = sweep_list,
thrY = 7
# include = "" (default), dir.exp = NULL (default)
)
head(result_comp$summary)
# 2. Parsimonious Solution (include = "?")
result_pars <- ctSweepM(
dat = sample_data,
outcome = "Y",
conditions = c("X1", "X2"),
sweep_list = sweep_list,
thrY = 7,
include = "?" # Include logical remainders
)
head(result_pars$summary)
# 3. Intermediate Solution (include = "?" + dir.exp)
result_int <- ctSweepM(
dat = sample_data,
outcome = "Y",
conditions = c("X1", "X2"),
sweep_list = sweep_list,
thrY = 7,
include = "?",
dir.exp = c(1, 1) # Positive expectations
)
head(result_int$summary)
# === Threshold Sweep Example ===
# Using 2 conditions and 2 threshold levels
sweep_list <- list(
X1 = 6:7,
X2 = 6:7
)
# Run multiple condition threshold sweep (complex solutions by default)
result_quick <- ctSweepM(
dat = sample_data,
outcome = "Y",
conditions = c("X1", "X2"),
sweep_list = sweep_list,
thrY = 7
)
head(result_quick$summary)
# Run with negated outcome (~Y)
result_neg <- ctSweepM(
dat = sample_data,
outcome = "~Y",
conditions = c("X1", "X2"),
sweep_list = sweep_list,
thrY = 7
)
head(result_neg$summary)
# Full multi-condition analysis (27 combinations)
sweep_list_full <- list(
X1 = 6:8,
X2 = 6:8,
X3 = 6:8
)
result_full <- ctSweepM(
dat = sample_data,
outcome = "Y",
conditions = c("X1", "X2", "X3"),
sweep_list = sweep_list_full,
thrY = 7
)
head(result_full$summary)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.