unique()

unique(x, incomparables = FALSE, MARGIN = 1, fromLast = FALSE, ...)
Returns: same type as x · Updated March 13, 2026 · Base Functions
vector subsetting base deduplication

unique() returns a vector, data frame, or array with duplicate elements removed. This function is fundamental for data cleaning and analysis.

Syntax

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

Parameters

ParameterTypeDefaultDescription
xvector/data.frame/arrayInput object to process
incomparablesvectorFALSEValues to treat as incomparable
MARGINinteger1For arrays: 1 for rows, 2 for columns
fromLastlogicalFALSEIf TRUE, count from last occurrence
...argumentsAdditional arguments passed to methods

Examples

Basic usage with vectors

x <- c(1, 2, 2, 3, 3, 3, 4)
unique(x)
# [1] 1 2 3 4

Working with character vectors

names <- c("Alice", "Bob", "Charlie", "Alice", "Diana", "Bob")
unique(names)
# [1] "Alice"   "Bob"     "Charlie" "Diana"

With data frames

df <- data.frame(
  id = c(1, 2, 2, 3, 4, 1),
  name = c("A", "B", "B", "C", "D", "A")
)

unique(df)
#   id name
# 1  1    A
# 2  2    B
# 3  3    C
# 4  4    D

Using fromLast argument

x <- c(1, 2, 2, 3)
unique(x, fromLast = TRUE)
# [1] 1 2 3

Common Patterns

Remove duplicates from data frame

df_unique <- unique(df)

library(dplyr)
df_unique <- distinct(df)

Find unique combinations

unique(interactions[, c("user_id", "item_id")])

See Also