# vec_duplicate: Find duplicated values In vctrs: Vector Helpers

## Description

• `vec_duplicate_any()`: detects the presence of duplicated values, similar to `anyDuplicated()`.

• `vec_duplicate_detect()`: returns a logical vector describing if each element of the vector is duplicated elsewhere. Unlike `duplicated()`, it reports all duplicated values, not just the second and subsequent repetitions.

• `vec_duplicate_id()`: returns an integer vector giving the location of the first occurrence of the value.

## Usage

 ```1 2 3 4 5``` ```vec_duplicate_any(x) vec_duplicate_detect(x) vec_duplicate_id(x) ```

## Arguments

 `x` A vector (including a data frame).

## Value

• `vec_duplicate_any()`: a logical vector of length 1.

• `vec_duplicate_detect()`: a logical vector the same length as `x`.

• `vec_duplicate_id()`: an integer vector the same length as `x`.

## Missing values

In most cases, missing values are not considered to be equal, i.e. `NA == NA` is not `TRUE`. This behaviour would be unappealing here, so these functions consider all `NAs` to be equal. (Similarly, all `NaN` are also considered to be equal.)

`vec_unique()` for functions that work with the dual of duplicated values: unique values.
 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16``` ```vec_duplicate_any(1:10) vec_duplicate_any(c(1, 1:10)) x <- c(10, 10, 20, 30, 30, 40) vec_duplicate_detect(x) # Note that `duplicated()` doesn't consider the first instance to # be a duplicate duplicated(x) # Identify elements of a vector by the location of the first element that # they're equal to: vec_duplicate_id(x) # Location of the unique values: vec_unique_loc(x) # Equivalent to `duplicated()`: vec_duplicate_id(x) == seq_along(x) ```