| Title: | Threshold-Sweep QCA |
|---|---|
| Description: | Provides threshold sweep methods for Qualitative Comparative Analysis ('QCA'). Implements Condition Threshold Sweep-Single (CTS-S), Condition Threshold Sweep-Multiple (CTS-M), Outcome Threshold Sweep (OTS), and Dual Threshold Sweep (DTS) for systematic exploration of threshold calibration effects on crisp-set 'QCA' results. These methods extend traditional robustness approaches by treating threshold variation as an exploratory tool for discovering causal structures. Also provides Fiss (2011) <doi:10.5465/amj.2011.60263120> core/peripheral condition classification via compute_fiss_core() and generate_fiss_chart(), enabling four-symbol configuration charts that distinguish core conditions (present in both parsimonious and intermediate solutions) from peripheral conditions (intermediate only). Built on top of the 'QCA' package by Dusa (2019) <doi:10.1007/978-3-319-75668-4>, with function arguments following 'QCA' conventions. Based on set-theoretic methods by Ragin (2008) <doi:10.7208/chicago/9780226702797.001.0001> and established robustness protocols by Rubinson et al. (2019) <doi:10.1177/00491241211036158>. This package supersedes 'TSQCA'; see the NEWS file for migration guidance. |
| Authors: | Yuki Toyoda [aut, cre], Japan Society for the Promotion of Science [fnd] (KAKENHI Grant Number JP20K01998) |
| Maintainer: | Yuki Toyoda <[email protected]> |
| License: | MIT + file LICENSE |
| Version: | 2.0.0 |
| Built: | 2026-05-31 10:03:46 UTC |
| Source: | https://github.com/im-research-yt/thsqca |
Takes an existing threshold-sweep result object (produced by
otSweep, ctSweepS, ctSweepM,
or dtSweep) and augments it with Fiss (2011)
core/peripheral classification.
Takes an existing threshold-sweep result object (produced by
otSweep, ctSweepS, ctSweepM,
or dtSweep) and augments it with Fiss (2011)
core/peripheral classification.
compute_fiss_core(result, conditions = NULL) compute_fiss_core(result, conditions = NULL)compute_fiss_core(result, conditions = NULL) compute_fiss_core(result, conditions = NULL)
result |
A sweep result object with |
conditions |
Character vector. Condition names (used for consistent
row ordering in charts). If |
The classification requires that:
The sweep was run with include = "?" (to allow parsimonious
computation)
return_details = TRUE was used (truth tables must be stored)
dir.exp was specified (i.e., the sweep produced intermediate
solutions — core/peripheral is only meaningful when comparing
parsimonious vs intermediate)
For each threshold in the result, this function:
Retrieves the intermediate solution already stored in
result$details.
Re-runs QCA::minimize() on the same truth table with
dir.exp = NULL to obtain the parsimonious solution.
Compares the two solutions: conditions appearing in both are core; conditions appearing only in the intermediate solution are peripheral.
The classification requires that:
The sweep was run with include = "?" (to allow parsimonious
computation)
return_details = TRUE was used (truth tables must be stored)
dir.exp was specified (i.e., the sweep produced intermediate
solutions — core/peripheral is only meaningful when comparing
parsimonious vs intermediate)
For each threshold in the result, this function:
Retrieves the intermediate solution already stored in
result$details.
Re-runs QCA::minimize() on the same truth table with
dir.exp = NULL to obtain the parsimonious solution.
Compares the two solutions: conditions appearing in both are core; conditions appearing only in the intermediate solution are peripheral.
The original result object with an additional
$fiss_core slot: a named list keyed by threshold (character),
each entry containing:
parsim_expression — parsimonious solution expression
interm_expression — intermediate solution expression
classification — data frame with columns
term_idx, term_expr, condition,
status, type
The original result object with an additional
$fiss_core slot: a named list keyed by threshold (character),
each entry containing:
parsim_expression — parsimonious solution expression
interm_expression — intermediate solution expression
classification — data frame with columns
term_idx, term_expr, condition,
status, type
Fiss, P. C. (2011). Building better causal theories: A fuzzy set approach to typologies in organization research. Academy of Management Journal, 54(2), 393-420.
Fiss, P. C. (2011). Building better causal theories: A fuzzy set approach to typologies in organization research. Academy of Management Journal, 54(2), 393-420.
library(ThSQCA) data(sample_data) # Step 1: Run intermediate sweep (dir.exp required) res <- otSweep( dat = sample_data, outcome = "Y", conditions = c("X1", "X2", "X3"), sweep_range = 6:8, thrX = c(X1 = 7, X2 = 7, X3 = 7), include = "?", dir.exp = c(1, 1, 1), return_details = TRUE ) # Step 2: Augment with Fiss core/peripheral classification res_fiss <- compute_fiss_core(res, conditions = c("X1", "X2", "X3")) # Step 3: Generate Fiss-style chart cat(generate_fiss_chart(res_fiss, symbol_set = "unicode")) library(ThSQCA) data(sample_data) # Step 1: Run intermediate sweep (dir.exp required) res <- otSweep( dat = sample_data, outcome = "Y", conditions = c("X1", "X2", "X3"), sweep_range = 6:8, thrX = c(X1 = 7, X2 = 7, X3 = 7), include = "?", dir.exp = c(1, 1, 1), return_details = TRUE ) # Step 2: Augment with Fiss core/peripheral classification res_fiss <- compute_fiss_core(res, conditions = c("X1", "X2", "X3")) # Step 3: Generate Fiss-style chart cat(generate_fiss_chart(res_fiss, symbol_set = "unicode"))library(ThSQCA) data(sample_data) # Step 1: Run intermediate sweep (dir.exp required) res <- otSweep( dat = sample_data, outcome = "Y", conditions = c("X1", "X2", "X3"), sweep_range = 6:8, thrX = c(X1 = 7, X2 = 7, X3 = 7), include = "?", dir.exp = c(1, 1, 1), return_details = TRUE ) # Step 2: Augment with Fiss core/peripheral classification res_fiss <- compute_fiss_core(res, conditions = c("X1", "X2", "X3")) # Step 3: Generate Fiss-style chart cat(generate_fiss_chart(res_fiss, symbol_set = "unicode")) library(ThSQCA) data(sample_data) # Step 1: Run intermediate sweep (dir.exp required) res <- otSweep( dat = sample_data, outcome = "Y", conditions = c("X1", "X2", "X3"), sweep_range = 6:8, thrX = c(X1 = 7, X2 = 7, X3 = 7), include = "?", dir.exp = c(1, 1, 1), return_details = TRUE ) # Step 2: Augment with Fiss core/peripheral classification res_fiss <- compute_fiss_core(res, conditions = c("X1", "X2", "X3")) # Step 3: Generate Fiss-style chart cat(generate_fiss_chart(res_fiss, symbol_set = "unicode"))
A simpler interface for generating configuration charts when you have paths directly (without a full QCA solution object).
config_chart_from_paths( paths, symbol_set = c("unicode", "ascii", "latex"), language = c("en", "ja"), condition_order = NULL, n_sol = 1L, solution_note = TRUE, solution_note_style = c("simple", "detailed"), epi_list = NULL )config_chart_from_paths( paths, symbol_set = c("unicode", "ascii", "latex"), language = c("en", "ja"), condition_order = NULL, n_sol = 1L, solution_note = TRUE, solution_note_style = c("simple", "detailed"), epi_list = NULL )
paths |
Character vector. Paths in QCA notation (e.g., "A*B*~C"). |
symbol_set |
Character. One of |
language |
Character. |
condition_order |
Character vector. Optional ordering of conditions. |
n_sol |
Integer. Number of equivalent solutions. If > 1, a note is added explaining that multiple solutions exist and M1 is shown. Default is 1. |
solution_note |
Logical. Whether to add solution note when n_sol > 1. Default is TRUE. |
solution_note_style |
Character. |
epi_list |
Character vector. Essential prime implicants for detailed notes.
Only used when |
Character string containing Markdown-formatted table.
# Simple usage with paths paths <- c("A*B", "A*C*~D", "B*E") chart <- config_chart_from_paths(paths) cat(chart) # With ASCII symbols chart <- config_chart_from_paths(paths, symbol_set = "ascii") cat(chart) # With multiple solution note chart <- config_chart_from_paths(paths, n_sol = 2) cat(chart) # With detailed note including EPIs chart <- config_chart_from_paths( paths, n_sol = 2, solution_note_style = "detailed", epi_list = c("A*B") ) cat(chart)# Simple usage with paths paths <- c("A*B", "A*C*~D", "B*E") chart <- config_chart_from_paths(paths) cat(chart) # With ASCII symbols chart <- config_chart_from_paths(paths, symbol_set = "ascii") cat(chart) # With multiple solution note chart <- config_chart_from_paths(paths, n_sol = 2) cat(chart) # With detailed note including EPIs chart <- config_chart_from_paths( paths, n_sol = 2, solution_note_style = "detailed", epi_list = c("A*B") ) cat(chart)
Generates separate configuration charts for multiple solutions.
config_chart_multi_solutions( solutions, symbol_set = c("unicode", "ascii", "latex"), language = c("en", "ja"), condition_order = NULL, show_epi = FALSE )config_chart_multi_solutions( solutions, symbol_set = c("unicode", "ascii", "latex"), language = c("en", "ja"), condition_order = NULL, show_epi = FALSE )
solutions |
List of character vectors. Each element is a vector of paths for one solution. |
symbol_set |
Character. One of |
language |
Character. |
condition_order |
Character vector. Optional ordering of conditions. |
show_epi |
Logical. Whether to identify and display Essential Prime Implicants (EPIs) in the note. Default is FALSE. |
Character string containing Markdown-formatted tables.
# Multiple solutions solutions <- list( c("A*B", "C"), c("A*B", "D"), c("A*C") ) chart <- config_chart_multi_solutions(solutions) cat(chart) # With EPI identification chart <- config_chart_multi_solutions(solutions, show_epi = TRUE) cat(chart)# Multiple solutions solutions <- list( c("A*B", "C"), c("A*B", "D"), c("A*C") ) chart <- config_chart_multi_solutions(solutions) cat(chart) # With EPI identification chart <- config_chart_multi_solutions(solutions, show_epi = TRUE) cat(chart)
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 )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)# 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)
Performs a threshold sweep for one focal condition X. For each threshold
in sweep_range, the outcome Y and all X variables are binarized
using user-specified thresholds, and a crisp-set QCA is executed.
ctSweepS( dat, outcome = NULL, conditions = NULL, sweep_var, sweep_range, thrY, thrX_default = 7, 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 )ctSweepS( dat, outcome = NULL, conditions = NULL, sweep_var, sweep_range, thrY, thrX_default = 7, 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_var |
Character. Name of the condition to be swept.
Must be one of |
sweep_range |
Numeric vector. Candidate thresholds for |
thrY |
Numeric. Threshold for Y (fixed). |
thrX_default |
Numeric. Default threshold for non-swept X variables.
Variables listed in |
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:
threshold — swept threshold for sweep_var
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-threshold list of
threshold, thrX_vec, truth_table, solution
# Load sample data data(sample_data) # === Three Types of QCA Solutions === # 1. Complex Solution (default, QCA compatible) result_comp <- ctSweepS( dat = sample_data, outcome = "Y", conditions = c("X1", "X2", "X3"), sweep_var = "X3", sweep_range = 7, thrY = 7, thrX_default = 7 # include = "" (default), dir.exp = NULL (default) ) head(result_comp$summary) # 2. Parsimonious Solution (include = "?") result_pars <- ctSweepS( dat = sample_data, outcome = "Y", conditions = c("X1", "X2", "X3"), sweep_var = "X3", sweep_range = 7, thrY = 7, thrX_default = 7, include = "?" # Include logical remainders ) head(result_pars$summary) # 3. Intermediate Solution (include = "?" + dir.exp) result_int <- ctSweepS( dat = sample_data, outcome = "Y", conditions = c("X1", "X2", "X3"), sweep_var = "X3", sweep_range = 7, thrY = 7, thrX_default = 7, include = "?", dir.exp = c(1, 1, 1) # All conditions expected positive ) head(result_int$summary) # === Threshold Sweep Example === # Run single condition threshold sweep on X3 (complex solutions by default) result <- ctSweepS( dat = sample_data, outcome = "Y", conditions = c("X1", "X2", "X3"), sweep_var = "X3", sweep_range = 6:8, thrY = 7, thrX_default = 7 ) head(result$summary) # Run with negated outcome (~Y) result_neg <- ctSweepS( dat = sample_data, outcome = "~Y", conditions = c("X1", "X2", "X3"), sweep_var = "X3", sweep_range = 6:8, thrY = 7, thrX_default = 7 ) head(result_neg$summary)# Load sample data data(sample_data) # === Three Types of QCA Solutions === # 1. Complex Solution (default, QCA compatible) result_comp <- ctSweepS( dat = sample_data, outcome = "Y", conditions = c("X1", "X2", "X3"), sweep_var = "X3", sweep_range = 7, thrY = 7, thrX_default = 7 # include = "" (default), dir.exp = NULL (default) ) head(result_comp$summary) # 2. Parsimonious Solution (include = "?") result_pars <- ctSweepS( dat = sample_data, outcome = "Y", conditions = c("X1", "X2", "X3"), sweep_var = "X3", sweep_range = 7, thrY = 7, thrX_default = 7, include = "?" # Include logical remainders ) head(result_pars$summary) # 3. Intermediate Solution (include = "?" + dir.exp) result_int <- ctSweepS( dat = sample_data, outcome = "Y", conditions = c("X1", "X2", "X3"), sweep_var = "X3", sweep_range = 7, thrY = 7, thrX_default = 7, include = "?", dir.exp = c(1, 1, 1) # All conditions expected positive ) head(result_int$summary) # === Threshold Sweep Example === # Run single condition threshold sweep on X3 (complex solutions by default) result <- ctSweepS( dat = sample_data, outcome = "Y", conditions = c("X1", "X2", "X3"), sweep_var = "X3", sweep_range = 6:8, thrY = 7, thrX_default = 7 ) head(result$summary) # Run with negated outcome (~Y) result_neg <- ctSweepS( dat = sample_data, outcome = "~Y", conditions = c("X1", "X2", "X3"), sweep_var = "X3", sweep_range = 6:8, thrY = 7, thrX_default = 7 ) head(result_neg$summary)
Sweeps thresholds for multiple X variables and the outcome Y jointly. For each combination of X thresholds and each candidate Y threshold, the data are binarized and a crisp-set QCA is executed.
dtSweep( dat, outcome = NULL, conditions = NULL, sweep_list_X, sweep_range_Y, 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 )dtSweep( dat, outcome = NULL, conditions = NULL, sweep_list_X, sweep_range_Y, 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_X |
Named list. Each element is a numeric vector of
candidate thresholds for the corresponding X. Variables listed in
|
sweep_range_Y |
Numeric vector. Candidate thresholds for Y. |
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 threshold combination
thrY — threshold for Y
thrX — character summary of X thresholds
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 — list of runs with
combo_id, thrY, thrX_vec,
truth_table, solution
# Load sample data data(sample_data) # === Three Types of QCA Solutions === # Quick demonstration with 2 conditions sweep_list_X <- list(X1 = 7, X2 = 7) sweep_range_Y <- 7 # 1. Complex Solution (default, QCA compatible) result_comp <- dtSweep( dat = sample_data, outcome = "Y", conditions = c("X1", "X2"), sweep_list_X = sweep_list_X, sweep_range_Y = sweep_range_Y # include = "" (default), dir.exp = NULL (default) ) head(result_comp$summary) # 2. Parsimonious Solution (include = "?") result_pars <- dtSweep( dat = sample_data, outcome = "Y", conditions = c("X1", "X2"), sweep_list_X = sweep_list_X, sweep_range_Y = sweep_range_Y, include = "?" # Include logical remainders ) head(result_pars$summary) # 3. Intermediate Solution (include = "?" + dir.exp) result_int <- dtSweep( dat = sample_data, outcome = "Y", conditions = c("X1", "X2"), sweep_list_X = sweep_list_X, sweep_range_Y = sweep_range_Y, include = "?", dir.exp = c(1, 1) # Positive expectations ) head(result_int$summary) # === Threshold Sweep Example === # Using 2 conditions and 2 threshold levels sweep_list_X <- list( X1 = 6:7, X2 = 6:7 ) sweep_range_Y <- 6:7 # Run dual threshold sweep (complex solutions by default) result_quick <- dtSweep( dat = sample_data, outcome = "Y", conditions = c("X1", "X2"), sweep_list_X = sweep_list_X, sweep_range_Y = sweep_range_Y ) head(result_quick$summary) # Full analysis with 3 conditions (81 combinations) sweep_list_X_full <- list( X1 = 6:8, X2 = 6:8, X3 = 6:8 ) sweep_range_Y_full <- 6:8 result_full <- dtSweep( dat = sample_data, outcome = "Y", conditions = c("X1", "X2", "X3"), sweep_list_X = sweep_list_X_full, sweep_range_Y = sweep_range_Y_full ) head(result_full$summary)# Load sample data data(sample_data) # === Three Types of QCA Solutions === # Quick demonstration with 2 conditions sweep_list_X <- list(X1 = 7, X2 = 7) sweep_range_Y <- 7 # 1. Complex Solution (default, QCA compatible) result_comp <- dtSweep( dat = sample_data, outcome = "Y", conditions = c("X1", "X2"), sweep_list_X = sweep_list_X, sweep_range_Y = sweep_range_Y # include = "" (default), dir.exp = NULL (default) ) head(result_comp$summary) # 2. Parsimonious Solution (include = "?") result_pars <- dtSweep( dat = sample_data, outcome = "Y", conditions = c("X1", "X2"), sweep_list_X = sweep_list_X, sweep_range_Y = sweep_range_Y, include = "?" # Include logical remainders ) head(result_pars$summary) # 3. Intermediate Solution (include = "?" + dir.exp) result_int <- dtSweep( dat = sample_data, outcome = "Y", conditions = c("X1", "X2"), sweep_list_X = sweep_list_X, sweep_range_Y = sweep_range_Y, include = "?", dir.exp = c(1, 1) # Positive expectations ) head(result_int$summary) # === Threshold Sweep Example === # Using 2 conditions and 2 threshold levels sweep_list_X <- list( X1 = 6:7, X2 = 6:7 ) sweep_range_Y <- 6:7 # Run dual threshold sweep (complex solutions by default) result_quick <- dtSweep( dat = sample_data, outcome = "Y", conditions = c("X1", "X2"), sweep_list_X = sweep_list_X, sweep_range_Y = sweep_range_Y ) head(result_quick$summary) # Full analysis with 3 conditions (81 combinations) sweep_list_X_full <- list( X1 = 6:8, X2 = 6:8, X3 = 6:8 ) sweep_range_Y_full <- 6:8 result_full <- dtSweep( dat = sample_data, outcome = "Y", conditions = c("X1", "X2", "X3"), sweep_list_X = sweep_list_X_full, sweep_range_Y = sweep_range_Y_full ) head(result_full$summary)
Extracts individual terms from solution expressions and returns formatted unique terms.
extract_terms(solutions, var_names, use_tilde = TRUE)extract_terms(solutions, var_names, use_tilde = TRUE)
solutions |
Character vector. Solution expressions. |
var_names |
Character vector. Variable names used in the analysis. |
use_tilde |
Logical. If TRUE, negation is represented as |
List with:
all_terms — all terms (with duplicates)
unique_terms — unique terms
n_total — total term count
n_unique — unique term count
var_names <- c("X1", "X2", "X3") solutions <- c("X1*X2 + X3", "X1*X2 + X1*X3") extract_terms(solutions, var_names)var_names <- c("X1", "X2", "X3") solutions <- c("X1*X2 + X3", "X1*X2 + X1*X3") extract_terms(solutions, var_names)
Formats a complete solution expression (multiple terms joined by +).
format_qca_solution(solution, var_names, use_tilde = TRUE)format_qca_solution(solution, var_names, use_tilde = TRUE)
solution |
Character. A solution expression (e.g., "KSPRVT + ~KPRPRD"). |
var_names |
Character vector. Variable names used in the analysis. |
use_tilde |
Logical. If TRUE, negation is represented as |
Character. The formatted solution expression.
var_names <- c("KSP", "KPR", "PRD", "RVT", "RCM") format_qca_solution("KSPRVT + ~KPRPRD + RCM", var_names) # Returns: "KSP*RVT + ~KPR*PRD + RCM"var_names <- c("KSP", "KPR", "PRD", "RVT", "RCM") format_qca_solution("KSPRVT + ~KPRPRD + RCM", var_names) # Returns: "KSP*RVT + ~KPR*PRD + RCM"
Formats a vector of solution expressions.
format_qca_solutions(solutions, var_names, use_tilde = TRUE)format_qca_solutions(solutions, var_names, use_tilde = TRUE)
solutions |
Character vector. Solution expressions from |
var_names |
Character vector. Variable names used in the analysis. |
use_tilde |
Logical. If TRUE, negation is represented as |
Character vector. Formatted solution expressions.
var_names <- c("KSP", "KPR", "PRD", "RVT", "RCM") solutions <- c("KSPRVT + RCM", "~KPRPRD") format_qca_solutions(solutions, var_names)var_names <- c("KSP", "KPR", "PRD", "RVT", "RCM") solutions <- c("KSPRVT + RCM", "~KPRPRD") format_qca_solutions(solutions, var_names)
Inserts * between variables in a term where it may have been omitted.
format_qca_term(term, var_names, use_tilde = TRUE)format_qca_term(term, var_names, use_tilde = TRUE)
term |
Character. A single term (e.g., "KSPRVT" or "~KPR*PRD"). |
var_names |
Character vector. Variable names used in the analysis. |
use_tilde |
Logical. If TRUE, negation is represented as |
Character. The formatted term with * between all variables.
var_names <- c("KSP", "KPR", "PRD", "RVT", "RCM") format_qca_term("KSPRVTRCM", var_names) # Returns: "KSP*RVT*RCM" format_qca_term("~KPRPRD", var_names) # Returns: "~KPR*PRD"var_names <- c("KSP", "KPR", "PRD", "RVT", "RCM") format_qca_term("KSPRVTRCM", var_names) # Returns: "KSP*RVT*RCM" format_qca_term("~KPRPRD", var_names) # Returns: "~KPR*PRD"
Creates a Markdown-formatted configuration chart (Fiss-style table) from QCA minimization results. Supports single solution with multiple paths, and multiple solutions (displayed as separate tables).
generate_config_chart( sol, symbol_set = c("unicode", "ascii", "latex"), include_metrics = TRUE, language = c("en", "ja"), condition_order = NULL )generate_config_chart( sol, symbol_set = c("unicode", "ascii", "latex"), include_metrics = TRUE, language = c("en", "ja"), condition_order = NULL )
sol |
A solution object returned by |
symbol_set |
Character. One of |
include_metrics |
Logical. Whether to include consistency/coverage metrics in the table. Default is TRUE. |
language |
Character. |
condition_order |
Character vector. Optional ordering of conditions in the table rows. If NULL, conditions are ordered as they appear in paths. |
Character string containing Markdown-formatted table(s).
Creates a configuration chart from threshold sweep results. Supports two levels of aggregation: solution-term level (Fiss-style, default) and threshold-level summary.
generate_cross_threshold_chart( result, conditions = NULL, symbol_set = c("unicode", "ascii", "latex"), chart_level = c("term", "summary"), language = c("en", "ja") )generate_cross_threshold_chart( result, conditions = NULL, symbol_set = c("unicode", "ascii", "latex"), chart_level = c("term", "summary"), language = c("en", "ja") )
result |
A result object from any Sweep function (otSweep, ctSweepS, ctSweepM, or dtSweep). |
conditions |
Character vector. Condition names for row ordering. If NULL, automatically extracted from expressions. |
symbol_set |
Character. One of |
chart_level |
Character. Chart aggregation level:
|
language |
Character. |
Character string containing Markdown-formatted table.
data(sample_data) result <- otSweep( dat = sample_data, outcome = "Y", conditions = c("X1", "X2", "X3"), sweep_range = 6:8, thrX = c(X1 = 7, X2 = 7, X3 = 7) ) # Solution-term level, Fiss-style (default) chart <- generate_cross_threshold_chart(result, c("X1", "X2", "X3")) cat(chart) # Threshold-level summary chart <- generate_cross_threshold_chart(result, c("X1", "X2", "X3"), chart_level = "summary") cat(chart)data(sample_data) result <- otSweep( dat = sample_data, outcome = "Y", conditions = c("X1", "X2", "X3"), sweep_range = 6:8, thrX = c(X1 = 7, X2 = 7, X3 = 7) ) # Solution-term level, Fiss-style (default) chart <- generate_cross_threshold_chart(result, c("X1", "X2", "X3")) cat(chart) # Threshold-level summary chart <- generate_cross_threshold_chart(result, c("X1", "X2", "X3"), chart_level = "summary") cat(chart)
Produces a Markdown-formatted configuration chart following Fiss (2011), using four symbols to distinguish core conditions (present in both parsimonious and intermediate solutions) from peripheral conditions (present in intermediate solution only).
Produces a Markdown-formatted configuration chart following Fiss (2011), using four symbols to distinguish core conditions (present in both parsimonious and intermediate solutions) from peripheral conditions (present in intermediate solution only).
generate_fiss_chart( result, conditions = NULL, symbol_set = c("unicode", "ascii", "latex"), language = c("en", "ja") ) generate_fiss_chart( result, conditions = NULL, symbol_set = c("unicode", "ascii", "latex"), language = c("en", "ja") )generate_fiss_chart( result, conditions = NULL, symbol_set = c("unicode", "ascii", "latex"), language = c("en", "ja") ) generate_fiss_chart( result, conditions = NULL, symbol_set = c("unicode", "ascii", "latex"), language = c("en", "ja") )
result |
Sweep result augmented by |
conditions |
Character vector. Condition names (row order).
If |
symbol_set |
Character. One of |
language |
Character. |
Call compute_fiss_core first to augment the sweep result.
Call compute_fiss_core first to augment the sweep result.
Character string: Markdown-formatted Fiss configuration chart.
Character string: Markdown-formatted Fiss configuration chart.
Fiss, P. C. (2011). Building better causal theories: A fuzzy set approach to typologies in organization research. Academy of Management Journal, 54(2), 393-420.
Fiss, P. C. (2011). Building better causal theories: A fuzzy set approach to typologies in organization research. Academy of Management Journal, 54(2), 393-420.
data(sample_data) res <- otSweep( dat = sample_data, outcome = "Y", conditions = c("X1", "X2", "X3"), sweep_range = 6:8, thrX = c(X1 = 7, X2 = 7, X3 = 7), include = "?", dir.exp = c(1, 1, 1), return_details = TRUE ) res_fiss <- compute_fiss_core(res, conditions = c("X1", "X2", "X3")) cat(generate_fiss_chart(res_fiss)) cat(generate_fiss_chart(res_fiss, symbol_set = "latex")) cat(generate_fiss_chart(res_fiss, language = "ja")) data(sample_data) res <- otSweep( dat = sample_data, outcome = "Y", conditions = c("X1", "X2", "X3"), sweep_range = 6:8, thrX = c(X1 = 7, X2 = 7, X3 = 7), include = "?", dir.exp = c(1, 1, 1), return_details = TRUE ) res_fiss <- compute_fiss_core(res, conditions = c("X1", "X2", "X3")) cat(generate_fiss_chart(res_fiss)) cat(generate_fiss_chart(res_fiss, symbol_set = "latex")) cat(generate_fiss_chart(res_fiss, language = "ja"))data(sample_data) res <- otSweep( dat = sample_data, outcome = "Y", conditions = c("X1", "X2", "X3"), sweep_range = 6:8, thrX = c(X1 = 7, X2 = 7, X3 = 7), include = "?", dir.exp = c(1, 1, 1), return_details = TRUE ) res_fiss <- compute_fiss_core(res, conditions = c("X1", "X2", "X3")) cat(generate_fiss_chart(res_fiss)) cat(generate_fiss_chart(res_fiss, symbol_set = "latex")) cat(generate_fiss_chart(res_fiss, language = "ja")) data(sample_data) res <- otSweep( dat = sample_data, outcome = "Y", conditions = c("X1", "X2", "X3"), sweep_range = 6:8, thrX = c(X1 = 7, X2 = 7, X3 = 7), include = "?", dir.exp = c(1, 1, 1), return_details = TRUE ) res_fiss <- compute_fiss_core(res, conditions = c("X1", "X2", "X3")) cat(generate_fiss_chart(res_fiss)) cat(generate_fiss_chart(res_fiss, symbol_set = "latex")) cat(generate_fiss_chart(res_fiss, language = "ja"))
Creates a markdown report from QCA analysis results. Supports two formats: "full" (comprehensive) and "simple" (for manuscripts).
generate_report( result, output_file = file.path(tempdir(), "qca_report.md"), format = c("full", "simple"), title = "QCA Analysis Report", dat = NULL, desc_vars = NULL, include_chart = TRUE, chart_symbol_set = c("unicode", "ascii", "latex"), chart_level = c("term", "summary"), solution_note = TRUE, solution_note_style = c("simple", "detailed"), solution_note_lang = c("en", "ja"), include_fiss_core = FALSE, include_raw_output = TRUE )generate_report( result, output_file = file.path(tempdir(), "qca_report.md"), format = c("full", "simple"), title = "QCA Analysis Report", dat = NULL, desc_vars = NULL, include_chart = TRUE, chart_symbol_set = c("unicode", "ascii", "latex"), chart_level = c("term", "summary"), solution_note = TRUE, solution_note_style = c("simple", "detailed"), solution_note_lang = c("en", "ja"), include_fiss_core = FALSE, include_raw_output = TRUE )
result |
A result object from any Sweep function with
|
output_file |
Character. Path to output markdown file. |
format |
Character. Report format: |
title |
Character. Report title. |
dat |
Optional data frame. Original data for descriptive statistics. |
desc_vars |
Optional character vector. Variables for descriptive statistics. If NULL and dat is provided, uses Yvar and Xvars from params. |
include_chart |
Logical. If TRUE (default), includes configuration charts (Fiss-style tables) in the report for each threshold. |
chart_symbol_set |
Character. Symbol set for configuration charts:
|
chart_level |
Character. Chart aggregation level:
|
solution_note |
Logical. If TRUE (default), adds a note when multiple equivalent solutions exist explaining that M1 is shown. |
solution_note_style |
Character. Style of solution note:
|
solution_note_lang |
Character. Language for solution notes:
|
include_fiss_core |
Logical. If TRUE and |
include_raw_output |
Logical. If TRUE (default), includes the raw QCA package output (print(sol)) for each threshold for verification purposes. |
Invisibly returns the path to the generated report.
data(sample_data) thrX <- c(X1 = 7, X2 = 7, X3 = 7) result <- otSweep( dat = sample_data, outcome = "Y", conditions = c("X1", "X2", "X3"), sweep_range = 6:8, thrX = thrX, return_details = TRUE ) # With descriptive statistics and configuration charts generate_report(result, file.path(tempdir(), "my_report.md"), format = "full", dat = sample_data, include_chart = TRUE) # Without configuration charts generate_report(result, file.path(tempdir(), "my_report.md"), format = "simple", include_chart = FALSE) # With Fiss-style term-level charts (default, recommended for publications) generate_report(result, file.path(tempdir(), "my_report.md"), format = "full") # With threshold-level summary charts generate_report(result, file.path(tempdir(), "my_report.md"), format = "full", chart_level = "summary")data(sample_data) thrX <- c(X1 = 7, X2 = 7, X3 = 7) result <- otSweep( dat = sample_data, outcome = "Y", conditions = c("X1", "X2", "X3"), sweep_range = 6:8, thrX = thrX, return_details = TRUE ) # With descriptive statistics and configuration charts generate_report(result, file.path(tempdir(), "my_report.md"), format = "full", dat = sample_data, include_chart = TRUE) # Without configuration charts generate_report(result, file.path(tempdir(), "my_report.md"), format = "simple", include_chart = FALSE) # With Fiss-style term-level charts (default, recommended for publications) generate_report(result, file.path(tempdir(), "my_report.md"), format = "full") # With threshold-level summary charts generate_report(result, file.path(tempdir(), "my_report.md"), format = "full", chart_level = "summary")
Creates a note explaining that multiple equivalent solutions exist and that the displayed configuration is based on M1.
generate_solution_note( n_sol, epi_list = NULL, style = c("simple", "detailed"), language = c("en", "ja"), format = c("markdown", "latex") )generate_solution_note( n_sol, epi_list = NULL, style = c("simple", "detailed"), language = c("en", "ja"), format = c("markdown", "latex") )
n_sol |
Integer. Number of solutions. |
epi_list |
Character vector. Essential prime implicants (NULL to omit). |
style |
Character. |
language |
Character. |
format |
Character. |
Character string of the note, or empty string if n_sol <= 1.
# Simple note generate_solution_note(2, style = "simple") # Detailed note with EPIs generate_solution_note(3, epi_list = c("A*B", "C"), style = "detailed") # Japanese generate_solution_note(2, style = "simple", language = "ja")# Simple note generate_solution_note(2, style = "simple") # Detailed note with EPIs generate_solution_note(3, epi_list = c("A*B", "C"), style = "detailed") # Japanese generate_solution_note(2, style = "simple", language = "ja")
Finds terms that appear in ALL solutions (EPIs) versus terms that appear in only some solutions (SPIs).
identify_epi(solutions)identify_epi(solutions)
solutions |
List of solution vectors. Each element is a character vector of terms for one solution. |
List with:
epi — Essential prime implicants (in all solutions)
spi — Selective prime implicants (in some solutions)
n_solutions — Number of solutions
solutions <- list( c("A*B", "C", "D"), c("A*B", "C", "E"), c("A*B", "C", "F") ) result <- identify_epi(solutions) # result$epi = c("A*B", "C") # result$spi = c("D", "E", "F")solutions <- list( c("A*B", "C", "D"), c("A*B", "C", "E"), c("A*B", "C", "F") ) result <- identify_epi(solutions) # result$epi = c("A*B", "C") # result$spi = c("D", "E", "F")
Sweeps the threshold of the outcome Y while keeping the thresholds of all X conditions fixed.
otSweep( dat, outcome = NULL, conditions = NULL, sweep_range, thrX, 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 )otSweep( dat, outcome = NULL, conditions = NULL, sweep_range, thrX, 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_range |
Numeric vector. Candidate thresholds for Y. |
thrX |
Named numeric vector. Fixed thresholds for X variables.
Names must match the conditions that require binarization.
Variables listed in |
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:
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
# Load sample data data(sample_data) # Set fixed thresholds for conditions thrX <- c(X1 = 7, X2 = 7, X3 = 7) # === Three Types of QCA Solutions === # 1. Complex Solution (default, QCA compatible) # Does not use logical remainders (most conservative) result_comp <- otSweep( dat = sample_data, outcome = "Y", conditions = c("X1", "X2", "X3"), sweep_range = 7, thrX = thrX # include = "" (default), dir.exp = NULL (default) ) head(result_comp$summary) # 2. Parsimonious Solution (include = "?") # Uses logical remainders without directional expectations result_pars <- otSweep( dat = sample_data, outcome = "Y", conditions = c("X1", "X2", "X3"), sweep_range = 7, thrX = thrX, include = "?" # Include logical remainders ) head(result_pars$summary) # 3. Intermediate Solution (include = "?" + dir.exp) # Uses logical remainders with directional expectations result_int <- otSweep( dat = sample_data, outcome = "Y", conditions = c("X1", "X2", "X3"), sweep_range = 7, thrX = thrX, include = "?", dir.exp = c(1, 1, 1) # All conditions expected positive ) head(result_int$summary) # === Threshold Sweep Example === # Sweep with complex solutions (default) result_sweep <- otSweep( dat = sample_data, outcome = "Y", conditions = c("X1", "X2", "X3"), sweep_range = 6:8, thrX = thrX ) head(result_sweep$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:8, thrX = thrX ) head(result_neg$summary)# Load sample data data(sample_data) # Set fixed thresholds for conditions thrX <- c(X1 = 7, X2 = 7, X3 = 7) # === Three Types of QCA Solutions === # 1. Complex Solution (default, QCA compatible) # Does not use logical remainders (most conservative) result_comp <- otSweep( dat = sample_data, outcome = "Y", conditions = c("X1", "X2", "X3"), sweep_range = 7, thrX = thrX # include = "" (default), dir.exp = NULL (default) ) head(result_comp$summary) # 2. Parsimonious Solution (include = "?") # Uses logical remainders without directional expectations result_pars <- otSweep( dat = sample_data, outcome = "Y", conditions = c("X1", "X2", "X3"), sweep_range = 7, thrX = thrX, include = "?" # Include logical remainders ) head(result_pars$summary) # 3. Intermediate Solution (include = "?" + dir.exp) # Uses logical remainders with directional expectations result_int <- otSweep( dat = sample_data, outcome = "Y", conditions = c("X1", "X2", "X3"), sweep_range = 7, thrX = thrX, include = "?", dir.exp = c(1, 1, 1) # All conditions expected positive ) head(result_int$summary) # === Threshold Sweep Example === # Sweep with complex solutions (default) result_sweep <- otSweep( dat = sample_data, outcome = "Y", conditions = c("X1", "X2", "X3"), sweep_range = 6:8, thrX = thrX ) head(result_sweep$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:8, thrX = thrX ) head(result_neg$summary)
Displays which conditions are core and which are peripheral at a given threshold, in a human-readable format.
Displays which conditions are core and which are peripheral at a given threshold, in a human-readable format.
print_fiss_summary(result, thr_key, language = c("en", "ja")) print_fiss_summary(result, thr_key, language = c("en", "ja"))print_fiss_summary(result, thr_key, language = c("en", "ja")) print_fiss_summary(result, thr_key, language = c("en", "ja"))
result |
Sweep result augmented by |
thr_key |
Character or numeric. Threshold key (e.g., "7" or 7). |
language |
Character. |
Invisibly returns the classification data frame for thr_key.
Invisibly returns the classification data frame for thr_key.
Displays a concise overview of ThSQCA analysis results.
## S3 method for class 'tsqca_result' print(x, ...) ## S3 method for class 'otSweep_result' print(x, ...) ## S3 method for class 'dtSweep_result' print(x, ...) ## S3 method for class 'ctSweepS_result' print(x, ...) ## S3 method for class 'ctSweepM_result' print(x, ...)## S3 method for class 'tsqca_result' print(x, ...) ## S3 method for class 'otSweep_result' print(x, ...) ## S3 method for class 'dtSweep_result' print(x, ...) ## S3 method for class 'ctSweepS_result' print(x, ...) ## S3 method for class 'ctSweepM_result' print(x, ...)
x |
A ThSQCA result object returned by one of the sweep functions. |
... |
Additional arguments (ignored). |
Invisibly returns x.
data(sample_data) result <- otSweep( dat = sample_data, outcome = "Y", conditions = c("X1", "X2", "X3"), sweep_range = 6:8, thrX = c(X1 = 7, X2 = 7, X3 = 7) ) print(result)data(sample_data) result <- otSweep( dat = sample_data, outcome = "Y", conditions = c("X1", "X2", "X3"), sweep_range = 6:8, thrX = c(X1 = 7, X2 = 7, X3 = 7) ) print(result)
A small artificial dataset with variables:
Outcome (numeric)
Condition 1
Condition 2
Condition 3
sample_datasample_data
A data frame with 80 rows and 4 variables.
Displays detailed results table with solution formulas and fit measures.
## S3 method for class 'tsqca_result' summary(object, ...) ## S3 method for class 'otSweep_result' summary(object, ...) ## S3 method for class 'dtSweep_result' summary(object, ...) ## S3 method for class 'ctSweepS_result' summary(object, ...) ## S3 method for class 'ctSweepM_result' summary(object, ...)## S3 method for class 'tsqca_result' summary(object, ...) ## S3 method for class 'otSweep_result' summary(object, ...) ## S3 method for class 'dtSweep_result' summary(object, ...) ## S3 method for class 'ctSweepS_result' summary(object, ...) ## S3 method for class 'ctSweepM_result' summary(object, ...)
object |
A ThSQCA result object returned by one of the sweep functions. |
... |
Additional arguments (ignored). |
Invisibly returns object.
data(sample_data) result <- otSweep( dat = sample_data, outcome = "Y", conditions = c("X1", "X2", "X3"), sweep_range = 6:8, thrX = c(X1 = 7, X2 = 7, X3 = 7) ) summary(result)data(sample_data) result <- otSweep( dat = sample_data, outcome = "Y", conditions = c("X1", "X2", "X3"), sweep_range = 6:8, thrX = c(X1 = 7, X2 = 7, X3 = 7) ) summary(result)