R: Intersection of Two Sets

setintersect {set6} | R Documentation

## Intersection of Two Sets

### Description

Returns the intersection of two objects inheriting from class `Set`.

### Usage

    setintersect(x, y)

    ## S3 method for class 'Interval'
    setintersect(x, y)

    ## S3 method for class 'ConditionalSet'
    setintersect(x, y)

    ## S3 method for class 'UnionSet'
    setintersect(x, y)

    ## S3 method for class 'ComplementSet'
    setintersect(x, y)

    ## S3 method for class 'ProductSet'
    setintersect(x, y)

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

### Arguments

`x, y` | Set

### Details

The intersection of two sets, X, Y, is defined as the set of elements that exist in both sets,

{z : z ε X and z ε 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.

### Value

A `Set` consisting of elements in both `x` and `y`.

### See Also

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

### Examples

    # 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)

[Package set6 version 0.2.0 Index]