Learn R Programming

set6 (version 0.2.4)

setcomplement: 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 Set setcomplement(x, y, simplify = TRUE)

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

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

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

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

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

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

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

# S3 method for 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.

Value

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

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 \epsilon X \quad and \quad \neg(z \epsilon 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.

See Also

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

Examples

Run this code
# NOT RUN {
# 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()
# }

Run the code above in your browser using DataLab