DeMorgan {QCApro}R Documentation

Negate Boolean Expressions using De Morgan's Laws

Description

This function negates simple or complex Boolean expressions using the two De Morgan Laws.

Usage

DeMorgan(expression, and.split = "", use.tilde = FALSE)

is.DeMorgan(x)

Arguments

expression

A string representing a Boolean expression or a solution object of class 'qca'.

and.split

The AND-operator (if any).

use.tilde

Logical, use '~' for negation with bivalent variables.

x

An object of class 'DeMorgan'.

Details

The two De Morgan laws posit that the negation of a disjunction is the conjunction of its separate negations, and the negation of a conjunction is the disjunction of its separate negations (Hohn 1966, p.80).

The argument expression can be any complex string representing a Boolean expression of disjunctions and conjunctions, or a solution object of class 'qca' (objects returned by the 'eQMC' function).

Value

A list of solutions with their negations as components if expression is an object of class 'qca', or simply a list with the following components if expression is a string:

initial

The initial expression.

negated

The negation of the initial expression.

Contributors

Dusa, Adrian: development, programming, testing
Thiem, Alrik: development, documentation, testing

Author(s)

Alrik Thiem (Personal Website; ResearchGate Website)

References

Hohn, Franz E. 1966. Applied Boolean Algebra: An Elementary Introduction. 2nd ed. New York: Macmillan.

Ragin, Charles C. 1987. The Comparative Method: Moving beyond Qualitative and Quantitative Strategies. Berkeley: University of California Press.

See Also

eQMC

Examples

# example from Ragin (1987, p.99)
DeMorgan("AC + B~C")

# with different AND-operators
DeMorgan("A*C + B*~C", and.split = "*")
DeMorgan("A&C + B&~C", and.split = "&")

# use solution object of class 'qca' returned by 'eQMC' function, 
# even with multiple models
data(d.represent)
KRO.ps <- eQMC(d.represent, outcome = "WNP")
DeMorgan(KRO.ps)

[Package QCApro version 1.1-2 Index]