R: Complement of Two Sets

setcomplement {set6} | R Documentation

## Complement of Two Sets

### Description

Returns the set difference of two objects inheriting from class `Set`. If `y` is missing then the complement of `x` from its universe is returned.

### Usage

    setcomplement(x, y, simplify = TRUE)

    ## S3 method for class 'Set'
    setcomplement(x, y, simplify = TRUE)

    ## S3 method for class 'Interval'
    setcomplement(x, y, simplify = TRUE)

    ## S3 method for class 'FuzzySet'
    setcomplement(x, y, simplify = TRUE)

    ## S3 method for class 'ConditionalSet'
    setcomplement(x, y, simplify = TRUE)

    ## S3 method for class 'Reals'
    setcomplement(x, y, simplify = TRUE)

    ## S3 method for class 'Rationals'
    setcomplement(x, y, simplify = TRUE)

    ## S3 method for class 'Integers'
    setcomplement(x, y, simplify = TRUE)

    ## S3 method for class 'ComplementSet'
    setcomplement(x, y, simplify = TRUE)

    ## S3 method for class 'Set'
    x - y

### Arguments

`x, y` | Set
`simplify` | logical, if `TRUE` (default) returns the result in its simplest form, usually a `Set` or UnionSet, otherwise a `ComplementSet`.

### Details

The difference of two sets, X, Y, is defined as the set of elements that exist in set X and not Y,

X-Y = {z : z ε X and !(z ε Y)}

The set difference of two ConditionalSets is defined by combining their defining functions by a negated 'and', `!&`, operator. See examples.

The complement of fuzzy and crisp sets first coerces fuzzy sets to crisp sets by finding their support.

### Value

An object inheriting from `Set` containing the set difference of elements in `x` and `y`.

### See Also

Other operators: `powerset()`, `setintersect()`, `setpower()`, `setproduct()`, `setsymdiff()`, `setunion()`

### Examples

    # absolute complement
    setcomplement(Set$new(1, 2, 3, universe = Reals$new()))
    setcomplement(Set$new(1, 2, universe = Set$new(1, 2, 3, 4, 5)))

    # complement of two sets

    Set$new(-2:4) - Set$new(2:5)
    setcomplement(Set$new(1, 4, "a"), Set$new("a", 6))

    # complement of two intervals

    Interval$new(1, 10) - Interval$new(5, 15)
    Interval$new(1, 10) - Interval$new(-15, 15)
    Interval$new(1, 10) - Interval$new(-1, 2)

    # complement of mixed set types

    Set$new(1:10) - Interval$new(5, 15)
    Set$new(5, 7) - Tuple$new(6, 8, 7)

    # FuzzySet-Set returns a FuzzySet
    FuzzySet$new(1, 0.1, 2, 0.5) - Set$new(2:5)
    # Set-FuzzySet returns a Set
    Set$new(2:5) - FuzzySet$new(1, 0.1, 2, 0.5)

    # complement of conditional sets

    ConditionalSet$new(function(x, y, simplify = TRUE) x >= y) -
      ConditionalSet$new(function(x, y, simplify = TRUE) x == y)

    # complement of special sets
    Reals$new() - NegReals$new()
    Rationals$new() - PosRationals$new()
    Integers$new() - PosIntegers$new()

[Package set6 version 0.2.1 Index]