unique                 package:base                 R Documentation

_E_x_t_r_a_c_t _U_n_i_q_u_e _E_l_e_m_e_n_t_s

_D_e_s_c_r_i_p_t_i_o_n:

     `unique' returns a vector, data frame or array like `x' but with
     duplicate  elements removed.

_U_s_a_g_e:

     unique(x, incomparables = FALSE, ...)
     unique.array(x, incomparables = FALSE, MARGIN = 1, ...)

_A_r_g_u_m_e_n_t_s:

       x: an atomic vector or a data frame or an array.

incomparables: a vector of values that cannot be compared. Currently,
          `FALSE' is the only possible value, meaning that all values
          can be compared.

     ...: arguments for particular methods.

  MARGIN: the array margin to be held fixed: a single integer.

_D_e_t_a_i_l_s:

     This is a generic function with methods for vectors, data frames
     and arrays (including matrices).

     The array method calculates for each element of the dimension
     specified by `MARGIN' if the remaining dimensions are identical to
     those for an earlier element (in row-major order).  This would
     most commonly be used to find unique rows (the default) or columns
     (with `MARGIN = 2').

_V_a_l_u_e:

     An object of the same type of `x'. but if an element is equal to
     one with a smaller index, it is removed. Dimensions of arrays are
     not dropped.

_S_e_e _A_l_s_o:

     `duplicated' which gives the indices of duplicated elements.

_E_x_a_m_p_l_e_s:

     unique(c(3:5, 11:8, 8 + 0:5))
     length(unique(sample(100, 100, replace=TRUE)))
     ## approximately 100(1 - 1/e) = 63.21
     my.unique <- function(x) x[!duplicated(x)]
     for(i in 1:4)
      { x <- rpois(100, pi); stopifnot(unique(x) == my.unique(x)) }

     data(iris)
     unique(iris)
     stopifnot(dim(unique(iris)) == c(149, 5))

