# sets {base}

Set Operations
Package:
base
Version:
R 3.0.2

### 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`, `setdiff` and `setequal` will discard any duplicated values in the arguments, and they apply `as.vector` to their arguments (and so in particular coerce factors to character vectors).

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

### Values

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`.

`%in%`

‘plotmath’ for the use of `union` and `intersect` in plot annotation.

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

Documentation reproduced from R 3.0.2. License: GPL-2.