# algebraNA: Modify algebra's way of computing with 'NA' values. In beerda/lfl: Linguistic Fuzzy Logic

## Description

By default, the objects created with the `algebra()` function represent a mathematical algebra capable to work on the [0,1] interval. If `NA` appears as a value instead, it is propagated to the result. That is, any operation with `NA` results in `NA`, by default. This scheme of handling missing values is also known as Bochvar's. To change this default behavior, the following functions may be applied.

## Usage

 ```1 2 3 4 5 6 7 8 9``` ```sobocinski(algebra) kleene(algebra) dragonfly(algebra) nelson(algebra) lowerEst(algebra) ```

## Arguments

 `algebra` the underlying algebra object to be modified – see the `algebra()` function

## Details

The `sobocinski()`, `kleene()`, `nelson()`, `lowerEst()` and `dragonfly()` functions modify the algebra to handle the `NA` in a different way than is the default. Sobocinski's algebra simply ignores `NA` values whereas Kleene's algebra treats `NA` as "unknown value". Dragonfly approach is a combination of Sobocinski's and Bochvar's approach, which preserves the ordering `0 <= NA <= 1` to obtain from compositions (see `compose()`) the lower-estimate in the presence of missing values.

In detail, the behaviour of the algebra modifiers is defined as follows:

Sobocinski's negation for `n` being the underlying algebra:

 a n(a) NA 0

Sobocinski's operation for `op` being one of `t`, `pt`, `c`, `pc`, `i`, `pi`, `s`, `ps` from the underlying algebra:

 b NA a op(a, b) a NA b NA

Sobocinski's operation for `r` from the underlying algebra:

 b NA a r(a, b) n(a) NA b NA

Kleene's negation is identical to `n` from the underlying algebra.

Kleene's operation for `op` being one of `t`, `pt`, `i`, `pi` from the underlying algebra:

 b NA 0 a op(a, b) NA 0 NA NA NA 0 0 0 0 0

Kleene's operation for `op` being one of `c`, `pc`, `s`, `ps` from the underlying algebra:

 b NA 1 a op(a, b) NA 1 NA NA NA 1 1 1 1 1

Kleene's operation for `r` from the underlying algebra:

 b NA 1 a r(a, b) NA 1 NA NA NA 1 0 1 1 1

Dragonfly negation is identical to `n` from the underlying algebra.

Dragonfly operation for `op` being one of `t`, `pt`, `i`, `pi` from the underlying algebra:

 b NA 0 1 a op(a, b) NA 0 a NA NA NA 0 NA 0 0 0 0 0 1 b NA 0 1

Dragonfly operation for `op` being one of `c`, `pc`, `s`, `ps` from the underlying algebra:

 b NA 0 1 a op(a, b) a a 1 NA b NA NA 1 0 b NA 0 1 1 1 1 1 1

Dragonfly operation for `r` from the underlying algebra:

 b NA 0 1 a r(a, b) NA n(a) 1 NA b 1 NA 1 0 1 1 1 1 1 b NA 0 1

## Value

A list of function of the same structure as is the list returned from the `algebra()` function

Michal Burda

## Examples

 ```1 2 3 4 5``` ```a <- algebra('lukas') b <- sobocinski(a) a\$t(0.3, NA) # NA b\$t(0.3, NA) # 0.3 ```

beerda/lfl documentation built on Oct. 17, 2020, 8:57 p.m.