Learn R Programming

set6 (version 0.2.4)

setintersect: Intersection of Two Sets

Description

Returns the intersection of two objects inheriting from class Set.

Usage

setintersect(x, y)

# S3 method for Interval setintersect(x, y)

# S3 method for ConditionalSet setintersect(x, y)

# S3 method for UnionSet setintersect(x, y)

# S3 method for ComplementSet setintersect(x, y)

# S3 method for ProductSet setintersect(x, y)

# S3 method for Set &(x, y)

Arguments

x, y

Set

Value

A Set consisting of elements in both x and y.

Details

The intersection of two sets, \(X, Y\), is defined as the set of elements that exist in both sets, $$X \cap Y = \{z : z \epsilon X \quad and \quad z \epsilon Y\}$$ In the case where no elements are common to either set, then the empty set is returned.

The intersection of two ConditionalSets is defined by combining their defining functions by an 'and', &, operator. See examples.

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

See Also

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

Examples

Run this code
# NOT RUN {
# intersection of two sets

Set$new(-2:4) & Set$new(2:5)
setintersect(Set$new(1, 4, "a"), Set$new("a", 6))
Set$new(1:4) & Set$new(5:7)

# intersection of two intervals

Interval$new(1, 10) & Interval$new(5, 15)
Interval$new(1, 2) & Interval$new(2, 3)
Interval$new(1, 5, class = "integer") &
  Interval$new(2, 7, class = "integer")

# intersection of mixed set types

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

# Ignores membership of FuzzySet

FuzzySet$new(1, 0.1, 2, 0.5) & Set$new(2:5)

# intersection of conditional sets

ConditionalSet$new(function(x, y) x >= y) &
  ConditionalSet$new(function(x, y) x == y)
ConditionalSet$new(function(x) x == 2) &
  ConditionalSet$new(function(y) y == 3)

# But be careful not to make an empty set

ConditionalSet$new(function(x) x == 2) &
  ConditionalSet$new(function(x) x == 3)
# }

Run the code above in your browser using DataLab