Skip to content

SCAtools

0.5.1Package record

Direction-Aware Sufficient Condition Analysis

1packages depend
430downloads / year
82.5%test coverage
13/13flavors OK

Overview

About

Tests whether a high or low level of a condition is enough to guarantee a high or low level of an outcome. Such a claim predicts that one corner of the condition-outcome scatter plot is empty of observations. The package estimates the boundary of that empty corner, its size as a share of the scope (the effect size), a permutation test against random pairing, and a threshold table giving the condition level that guarantees each outcome level, in actual units, percentages, percentiles or standard deviations. Each of the four directions (high or low condition, high or low outcome) is stated as a claim and mapped to its empty corner. Because a condition can rule out low outcomes while barely moving the average, results can be set beside ordinary least-squares and median regression slopes, showing whether the data hold an average effect, a sufficiency effect or both. Also provides plots, influential-case diagnostics, scope-sensitivity and resampling checks, random-data generation and power analysis for planning studies. Frontiers are estimated with the 'NCA' package.

Changes in 0.5.1

SCAtools 0.5.0 was not released on CRAN, so this is the release that brings

the 0.5.0 changes below to CRAN users of 0.4.3. Read *Upgrading from 0.4.3*

first; it collects in one place every change that can break a script written

for that release.

Changed: the technique column is frontier again

0.5.0 renamed the column that names the frontier technique from frontier to

frontier_technique. It is frontier again, in sca_table(),

sca_thresholds(), sca_compare(), sca_locationshift(),

sca_scope_sensitivity() and sca_resample(), which is the name it had in

0.4.3 -- so for this column a script written against the CRAN release needs no

change at all.

The problem 0.5.0 set out to solve was a column that held "ce_fdh" under a

Show all changes in 0.5.1Hide the rest of the changes in 0.5.1

name that the same table also used for the boundary itself. frontier does not

have that problem: the value identifies which fitted frontier the row reports,

and frontier_accuracy beside it is that frontier's accuracy. boundary_type

still says whether the boundary is a ceiling or a floor. The plot legend reads

"Frontier" again, and frontier is no longer listed by sca_legacy_names().

The arguments ceilings and ceiling are unchanged.

Changed: empty_zone_area is kept beside empty_space_area

0.5.0 renamed empty_zone_area to empty_space_area. NSCA 0.4.5, the release

on CRAN, reads the old name from sca_table(), and fails without it. The table

therefore carries empty_zone_area as an exact copy of empty_space_area until

a release of NSCA that reads the new name has replaced 0.4.5; it will then be

removed. New code should read empty_space_area.

NSCA 0.4.5's own test suite passes against this release.

Terminology: Sufficient Condition Analysis

The method is *Sufficient Condition Analysis*. 0.5.0 changed the title, and

this release finishes the job in the places it missed: citation("SCAtools"),

the README and the help page of sca().

Documentation

  • Description in DESCRIPTION, the text on the CRAN page, now says directly what the method is, what it is for and how it helps. Where the method comes from, with its authors and references, is on the package help page, ?SCAtools, which is no longer marked internal and so appears in the reference manual. It now covers the method, what it is for, how to use it and how to read the result.
  • The README and its Traditional Chinese translation are rewritten around the same four questions, with a worked example on sca_four_configurations, and install from CRAN. Version history now lives only in this file, and help pages no longer recount it.
  • Every exported function now has a runnable example. Examples that run a permutation test use 99 permutations on a subsample so that they finish within seconds; sca(), whose point is the default 1000 permutations, is wrapped in \donttest{}. sca_power() had lost the example it had in 0.4.3 when the help pages were regenerated, and has one again.
  • Help pages are generated with Markdown enabled. In 0.5.0 code, links and emphasis written in Markdown appeared literally in the rendered help -- backticks and square brackets rather than code and links.
  • citation("SCAtools") and the help pages cite the two papers that set out the method: Chan (in press), *From Necessity to Sufficiency and Necessity-and-Sufficiency: Extending Condition Analysis in Degree*, and Chan (in press), *Mean Effects Are Not Sufficiency Effects: How Sufficient Condition Analysis Complements Regression Analysis*, both University of Leeds. sca_four_configurations is the data of the second.
  • sca_legacy_names() said that sca_extract() accepts retired names with a warning and that retired arguments still work. Neither has been true since 0.5.0: sca_extract() stops and names the replacement, and boundary, bottleneck.x and bottleneck.y were removed. The page now says so, and lists the 0.5.0 renames as well as those of 0.4.0.
  • A stray tests/testthat/Rplots.pdf is no longer shipped.

Upgrading from 0.4.3

Everything that can make a script written for 0.4.3 fail or give a different

number, with the section of 0.5.0 below that explains it.

  • empty_zone_area is now empty_space_area. The old name is still present in sca_table() for now, and legacy = TRUE appends it to both tables.
  • sca() runs a permutation test by default (test.rep = 1000), so it takes noticeably longer than sca_analysis().
  • bottleneck.x and bottleneck.y are removed from sca_analysis(), and boundary from sca_thresholds() and sca_rescale(). Use threshold.x, threshold.y and inequality.
  • sca_extract() stops at once on a retired column name. In 0.4.3 such a call warned and then failed anyway, so only the message changes.
  • sca_reference() returns one row per condition and reference line, with line, tau and drawn columns.
  • sca_thresholds(), sca_test_plot() and sca_output() default to the first frontier actually estimated instead of "ce_fdh".
  • Six inputs that were accepted are refused: an unknown frontier technique, a test.p_threshold outside (0, 1), a negative test.rep, a reversed scope, a scope with no width, and the same variable as condition and outcome.
  • One outcome may not be given two different theoretical ranges across conditions.
  • With missing values, both axes of a condition are now bounded by the same rows, so effect sizes can differ from 0.4.3 on incomplete data. Complete data is unaffected.
  • Imports gains quantreg, which NCA already imports.

From NEWS.md in the release

Install

Health

CRAN checks
13OK
Slowest check: 7.6 min · r-release-macos-x86_64
Status changes
  • OK13 OKNow
  • OK7 OK2026-09-19
Advisories

none known

Documentation

In release 0.5.1
READMEYes · 880 wordsVignettesNoNEWSYes · 67% structured · mentions 0.5.1Citation fileYes · cites a publicationWebsitenot declared in DESCRIPTION
Help pages
34includes a package overview page
Examples that run
97%32 run in a plain check · 1 only when donttest examples are enabled (R CMD check --as-cran)
Exported functions with examples
100%
Documented parameters
89%
Return-value docs
100%
Help pages citing references
18%

Downloads

430
CRAN downloads in the past year
Rank #24,845 · ~1/day · ~36/mo
Daily download trend is not available in this view yet.
43030 days
43090 days
4301 year
Compare downloads with other packages →
Also on7 r2u

Repository

0Stars
0Forks
0Open issues
0Open PRs
0Releases
License file reads as GPL-3.0 · Last activity 2026-09-16
Responsiveness
not measured
PracticesBeta

Checks run against github.com/youngchanresearcher/scatools on 2026-10-11.

No development-tooling practices detected in the upstream repository.

How this is detected·Detection ruleset v3 (2026-09-26)

Dependencies

Declared dependencies
4 external dependencies (excludes base and recommended)

Installing SCAtools adds 82 packages (45 with compiled code, 76 MB of source tarballs). Heaviest: stringi 11 MB, ggplot2 6.0 MB, data.table 5.7 MB.

Depends (1)
R >= 3.5.0
Imports (5)
LinkingTo (0)
none
Suggests (1)
Enhances (0)
none
Reverse dependencies
1direct
0indirect
Imports 1
Depends, Imports or LinkingTo, most downloaded first

Datasets

People & History

People (1)
Author, Maintainer since 0.4.3 (2026)
Releases (2)
Submitted 0.5.2, in waiting since 2026-10-16 12:54 UTC, as of the 2026-10-18 19:08 UTC queue snapshot. See the queue →

Pick two releases to compare their code metrics.

  • 0.5.1Latest
    record
    2026-10-13 · current release · diff ↗ ·
    added 11 exports
    sca_boundary_type, sca_check_direction, sca_compare, sca_corner_location, sca_empty_space, sca_locationshift, sca_magnitude, sca_relationship, sca_resample, sca_scope, sca_scope_sensitivity
  • 0.4.3
    record
    2026-09-18
  • R
    R 4.6.0 released · 2026-04-24

Package metadata

First published
2026-09-18
Total releases
2 / 1 yrs
License
GPL (>= 3) OSI
Minimum R
≥ 3.5.0
Bundled data
28 KB / 1 file
Download size
215 KB

Cite

Cite this package

Run in R for the authors' entry:

citation("SCAtools")

The package provides a citation file, so citation() returns the authors' own entry.

It points to 10.1177/1094428115584005.

Cite the R Observatory

For a number measured here: a download total, a coverage figure, an archival date.

APA

Balamuta, J. J. (2026). R Observatory: Metrics for SCAtools version 0.5.1 [Data set]. HJJB, LLC. Data release v2026-10-18. https://doi.org/10.5281/zenodo.21843040

From data release v2026-10-18, which the citation names so these numbers can be found later. More on citing and the projects behind them.

Report a problem with this page →

Privacy choices

These apply to this browser and are stored on this device only. Nothing about your choice is sent to us.

Read the privacy policy