# Vector-setops

##### Set operations on vector-like objects

Perform set operations on Vector objects.

- Keywords
- methods

##### Usage

```
## S3 method for class 'Vector,Vector':
union(x, y)
```## S3 method for class 'Vector,Vector':
intersect(x, y)

## S3 method for class 'Vector,Vector':
setdiff(x, y)

## S3 method for class 'Vector,Vector':
setequal(x, y)

##### Arguments

- x, y
- Vector-like objects.

##### Details

The `union`

, `intersect`

, and `setdiff`

methods for
Vector objects return a Vector object containing respectively
the union, intersection, and (asymmetric!) difference of the 2 sets of
vector elements in `x`

and `y`

.
The `setequal`

method for Vector objects checks for *set
equality* between `x`

and `y`

.

They're defined as follow:
setMethod("union", c("Vector", "Vector"),
function(x, y) unique(c(x, y))
)
setMethod("intersect", c("Vector", "Vector"),
function(x, y) unique(x[x %in% y])
)
setMethod("setdiff", c("Vector", "Vector"),
function(x, y) unique(x[!(x %in% y)])
)
setMethod("setequal", c("Vector", "Vector"),
function(x, y) all(x %in% y) && all(y %in% x)
)
so they work out-of-the-box on Vector objects for which `c`

,
`unique`

, and `%in%`

are defined.

##### Value

`union`

returns a Vector object obtained by appending to`x`

the elements in`y`

that are not already in`x`

.`intersect`

returns a Vector object obtained by keeping only the elements in`x`

that are also in`y`

.`setdiff`

returns a Vector object obtained by dropping from`x`

the elements that are in`y`

.`setequal`

returns`TRUE`

if`x`

and`y`

contain the same*sets*of vector elements and`FALSE`

otherwise.`union`

,`intersect`

, and`setdiff`

propagate the names and metadata columns of their first argument (`x`

).

##### See Also

- Vector-comparisonfor comparing and ordering vector-like objects.
- Vectorobjects.
`BiocGenerics::union`

,`BiocGenerics::intersect`

, and`BiocGenerics::setdiff`

in theBiocGenerics package for general information about these generic functions.

##### Examples

`## See ?`Hits-setops` for some examples.`

*Documentation reproduced from package S4Vectors, version 0.10.1, License: Artistic-2.0*