Learn R Programming

TSQCA (version 1.0.0)

otSweep: OTS–QCA: Outcome threshold sweep

Description

Sweeps the threshold of the outcome Y while keeping the thresholds of all X conditions fixed.

Usage

otSweep(
  dat,
  outcome = NULL,
  conditions = NULL,
  sweep_range,
  thrX,
  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
)

Value

If return_details = FALSE, a data frame with columns:

  • thrY — threshold for Y

  • 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-Y-threshold list of thrY, thrX_vec, truth_table, solution

Arguments

dat

Data frame containing the outcome and condition variables.

outcome

Character. Outcome variable name. Supports negation with tilde prefix (e.g., "~Y") following QCA package conventions.

conditions

Character vector. Names of condition variables.

sweep_range

Numeric vector. Candidate thresholds for Y.

thrX

Named numeric vector. Fixed thresholds for X variables, with names matching conditions.

dir.exp

Directional expectations for minimize. If NULL, all set to 1.

include

Inclusion rule for minimize.

incl.cut

Consistency cutoff for truthTable.

n.cut

Frequency cutoff for truthTable.

pri.cut

PRI cutoff for minimize.

extract_mode

Character. How to handle multiple solutions: "first" (default), "all", or "essential". See qca_extract for details.

return_details

Logical. If TRUE (default), returns both summary and detailed objects for use with generate_report().

Yvar

Deprecated. Use outcome instead.

Xvars

Deprecated. Use conditions instead.

Examples

Run this code
# Load sample data
data(sample_data)

# Set fixed thresholds for conditions
thrX <- c(X1 = 7, X2 = 7, X3 = 7)

# Run outcome threshold sweep (standard)
result <- otSweep(
  dat = sample_data,
  outcome = "Y",
  conditions = c("X1", "X2", "X3"),
  sweep_range = 6:9,
  thrX = thrX
)
head(result$summary)

# Run with negated outcome (~Y)
# Analyzes conditions for Y < threshold
result_neg <- otSweep(
  dat = sample_data,
  outcome = "~Y",
  conditions = c("X1", "X2", "X3"),
  sweep_range = 6:9,
  thrX = thrX
)
head(result_neg$summary)

Run the code above in your browser using DataLab