sets {base} | R Documentation

## Set Operations

### Description

Performs set union, intersection, (asymmetric!) difference, equality and membership on two vectors.

### Usage

    union(x, y)
    intersect(x, y)
    setdiff(x, y)
    setequal(x, y)
    is.element(el, set)

### Arguments

`x, y, el, set` | vectors (of the same mode) containing a sequence of items (conceptually) with no duplicated values.

### Details

Each of `union`, `intersect` and `setdiff` will remove any duplicated values in the arguments.

`is.element(x, y)` is identical to `x %in% y`.

### Value

A vector of the same `mode` as `x` or `y` for `setdiff` and `intersect`, respectively, and of a common mode for `union`.
A logical scalar for `setequal` and a logical of the same length as `x` for `is.element`.

### Author(s)

B. D. Ripley

### See Also

`%in%`

### Examples

    (x <- c(sort(sample(1:20, 9)),NA))
    (y <- c(sort(sample(3:23, 7)),NA))
    union(x, y)
    intersect(x, y)
    setdiff(x, y)
    setdiff(y, x)
    setequal(x, y)

    ## True for all possible x & y :
    setequal( union(x,y),
              c(setdiff(x,y), intersect(x,y), setdiff(y,x)))

    is.element(x, y)# length 10
    is.element(y, x)# length  8