# Vector-setops: Set operations on vector-like objects In S4Vectors: Foundation of vector-like and list-like containers in Bioconductor

## Description

Perform set operations on Vector objects.

## Usage

 ``` 1 2 3 4 5 6 7 8 9 10 11``` ```## S4 method for signature 'Vector,Vector' union(x, y) ## S4 method for signature 'Vector,Vector' intersect(x, y) ## S4 method for signature 'Vector,Vector' setdiff(x, y) ## S4 method for signature '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:

 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13``` ``` 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`).

## Author(s)

Hervé Pagès

• Vector-comparison for comparing and ordering vector-like objects.

• Vector-merge for merging vector-like objects.

• Vector objects.

• `BiocGenerics::union`, `BiocGenerics::intersect`, and `BiocGenerics::setdiff` in the BiocGenerics package for general information about these generic functions.

## Examples

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

S4Vectors documentation built on Dec. 11, 2020, 2:02 a.m.