| Brackets | R Documentation |
Functions to extract information from an expression written in SOP - sum of products form, (or from the canonical DNF - disjunctive normal form) for multi-value causal conditions. It extracts either the values within brackets, or the causal conditions' names outside the brackets.
betweenBrackets(x, type = "[", invert = FALSE, regexp = NULL)
outsideBrackets(x, type = "[", regexp = NULL)
curlyBrackets(x, outside = FALSE, regexp = NULL)
squareBrackets(x, outside = FALSE, regexp = NULL)
roundBrackets(x, outside = FALSE, regexp = NULL)
x |
A DNF/SOP expression. |
type |
Brackets type: curly, round or square. |
invert |
Logical, if activated returns whatever is not within the brackets. |
outside |
Logical, if activated returns the conditions' names outside the brackets. |
regexp |
Optional regular expression to extract information with. |
Expressions written in SOP - sum of products are used in Boolean logic, signaling a disjunction of conjunctions.
These expressions are useful in Qualitative Comparative Analysis, a social science methodology that is employed in the context of searching for causal configurations that are associated with a certain outcome.
They are also used to draw Venn diagrams with the package venn, which draws any
kind of set intersection (conjunction) based on a custom SOP expression.
The functions curlyBrackets, squareBrackets and
roundBrackets are just special cases of the functions betweenBrackets
and outsideBrackets, using the argument type as either
"{", "[" or "(".
The function outsideBrackets itself can be considered a special case of the
function betweenBrackets, when it uses the argument invert = TRUE.
SOP expressions are usually written using curly brackets for multi-value conditions but to allow
the evaluation of unquoted expressions, they first needs to get past R's internal parsing system.
For this reason, multi-value conditions in unquoted expresions should use the square brackets
notation, and conjunctions should always use the product * sign.
Sufficiency is recognized as "=>" in quoted expressions but this does not pass over R's
parsing system in unquoted expressions. To overcome this problem, it is best to use the single
arrow "->" notation. Necessity is recognized as either "<=" or "<-", both
being valid in quoted and unquoted expressions.
Adrian Dusa
sop <- "A[1] + B[2]*C[0]"
betweenBrackets(sop) # 1, 2, 0
betweenBrackets(sop, invert = TRUE) # A, B, C
# unquoted (valid) SOP expressions are allowed, same result
betweenBrackets(A[1] + B[2]*C[0]) # the default type is "["
# curly brackets are also valid in quoted expressions
betweenBrackets("A{1} + B{2}*C{0}", type = "{")
# or
curlyBrackets("A{1} + B{2}*C{0}")
# and the condition names
curlyBrackets("A{1} + B{2}*C{0}", outside = TRUE)
squareBrackets(A[1] + B[2]*C[0]) # 1, 2, 0
squareBrackets(A[1] + B[2]*C[0], outside = TRUE) # A, B, C
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.