sets package:base R Documentation _S_e_t _O_p_e_r_a_t_i_o_n_s _D_e_s_c_r_i_p_t_i_o_n: Performs *set* union, intersection, (asymmetric!) difference, equality and membership on two vectors. _U_s_a_g_e: union(x, y) intersect(x, y) setdiff(x, y) setequal(x, y) is.element(el, set) _A_r_g_u_m_e_n_t_s: x, y, el, set: vectors (of the same mode) containing a sequence of items (conceptually) with no duplicated values. _D_e_t_a_i_l_s: 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'. _V_a_l_u_e: 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'. _S_e_e _A_l_s_o: '%in%' 'plotmath' for the use of 'union' and 'intersect' in plot annotation. _E_x_a_m_p_l_e_s: (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