sets                  package: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', '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'.

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

See Also:

     '%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

