Learn R Programming

stringr (version 1.5.1)

str_order: Order, rank, or sort a character vector

Description

  • str_sort() returns the sorted vector.

  • str_order() returns an integer vector that returns the desired order when used for subsetting, i.e. x[str_order(x)] is the same as str_sort()

  • str_rank() returns the ranks of the values, i.e. arrange(df, str_rank(x)) is the same as str_sort(df$x).

Usage

str_order(
  x,
  decreasing = FALSE,
  na_last = TRUE,
  locale = "en",
  numeric = FALSE,
  ...
)

str_rank(x, locale = "en", numeric = FALSE, ...)

str_sort( x, decreasing = FALSE, na_last = TRUE, locale = "en", numeric = FALSE, ... )

Value

A character vector the same length as string.

Arguments

x

A character vector to sort.

decreasing

A boolean. If FALSE, the default, sorts from lowest to highest; if TRUE sorts from highest to lowest.

na_last

Where should NA go? TRUE at the end, FALSE at the beginning, NA dropped.

locale

Locale to use for comparisons. See stringi::stri_locale_list() for all possible options. Defaults to "en" (English) to ensure that default behaviour is consistent across platforms.

numeric

If TRUE, will sort digits numerically, instead of as strings.

...

Other options used to control collation. Passed on to stringi::stri_opts_collator().

See Also

stringi::stri_order() for the underlying implementation.

Examples

Run this code
x <- c("apple", "car", "happy", "char")
str_sort(x)

str_order(x)
x[str_order(x)]

str_rank(x)

# In Czech, ch is a digraph that sorts after h
str_sort(x, locale = "cs")

# Use numeric = TRUE to sort numbers in strings
x <- c("100a10", "100a5", "2b", "2a")
str_sort(x)
str_sort(x, numeric = TRUE)

Run the code above in your browser using DataLab