dplyr::arrange()

arrange(.data, ..., .by_group = FALSE)
Returns: tibble · Updated March 13, 2026 · Tidyverse
dplyr sorting tidyverse

arrange() reorder rows of a data frame based on column values. By default, it sorts in ascending order. Use desc() to sort in descending order. When multiple columns are specified, arrange sorts by the first column, then breaks ties using the second, and so on.

Syntax

arrange(.data, ..., .by_group = FALSE)

Parameters

ParameterTypeDefaultDescription
.datatibble / data.frameA tibble or data frame to reorder
...column expressionsColumns to sort by, separated by commas. Use desc(col) for descending
.by_grouplogicalFALSEIf TRUE, sort by grouping variables first (from group_by())

Examples

Basic usage

library(dplyr)

df <- data.frame(
  name = c("Charlie", "Alice", "Bob"),
  score = c(85, 92, 78)
)

arrange(df, score)
# # A tibble: 3 × 2
#   name     score
#   <chr>    <dbl>
# 1 Bob         78
# 2 Charlie     85
# 3 Alice       92

Descending order

arrange(df, desc(score))
# # A tibble: 3 × 2
#   name     score
#   <chr>    <dbl>
# 1 Alice       92
# 2 Charlie     85
# 3 Bob         78

Multiple columns

df2 <- data.frame(
  dept = c("Sales", "Sales", "Engineering", "Engineering"),
  name = c("Bob", "Alice", "Charlie", "David"),
  score = c(78, 85, 92, 88)
)

arrange(df2, dept, desc(score))
# # A tibble: 4 × 3
#   dept       name     score
#   <chr>      <chr>    <dbl>
# 1 Engineering Charlie     92
# 2 Engineering David       88
# 3 Sales       Alice       85
# 4 Sales       Bob         78

Common Patterns

Sort with filter

Combine arrange() with filter() to find extremes:

# Get top 3 scores
arrange(df, desc(score)) |> head(3)

Sort by calculated column

Use mutate() before arrange() for derived sort keys:

df |> 
  mutate(initials = paste0(substr(name, 1, 1), ".")) |>
  arrange(initials)

Sort with NA values

NA values sort to the end by default:

df <- data.frame(x = c(3, 1, NA, 2))
arrange(df, x)
# # A tibble: 4 × 1
#       x
#   <dbl>
# 1     1
# 2     2
# 3     3
# 4    NA

See Also