# Evaluate a formula

### Description

When given a Boolean formula (see details) and a `data.frame`

of cases and fuzzy
set score for conditions, computes for each case the score of the membership
in the set described by the formula

### Usage

1 |

### Arguments

`data` |
A data frame where the rows represent cases and the columns the sets. Column names must be as in the formula. |

`formula` |
A string, list of strings or function representing a Boolean formula in disjunctive normal form |

### Details

If `formula`

is a function, it must take a `data.frame`

and return
a vector.

If `formula`

is a string or list of strings, the following conventions hold:
Set names must be capitalized in the formula and the data; if they are
lowercase, they are interpreted as the negation of the set.
If `formula`

is a string, logical 'or' is expressed as a '+',
and logical 'and' as a '*'.
If `formula`

is a list of strings, the strings are assumed to be
the dosjuncts and are concatenated with '+'.
The formula must be in disjunctive normal form, i.e. it must be a disjunction of
conjunctions of elementary or negated elementary sets. Example:
`A*b*C + a*B`

### Value

the fuzzy set score of the set described by the formula for each case in the data

### Examples

1 2 3 | ```
require(QCA)
data(d.urban)
evaluate_dnf(d.urban, "MLC*frb + CP")
``` |