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).
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,
...
)A character vector to sort.
A boolean. If FALSE, the default, sorts from
lowest to highest; if TRUE sorts from highest to lowest.
Where should NA go? TRUE at the end,
FALSE at the beginning, NA dropped.
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.
If TRUE, will sort digits numerically, instead
of as strings.
Other options used to control collation. Passed on to
stringi::stri_opts_collator().
A character vector the same length as string.
stringi::stri_order() for the underlying implementation.
x <- c("apple", "car", "happy", "char")
str_sort(x)
#> [1] "apple" "car" "char" "happy"
str_order(x)
#> [1] 1 2 4 3
x[str_order(x)]
#> [1] "apple" "car" "char" "happy"
str_rank(x)
#> [1] 1 2 4 3
# In Czech, ch is a digraph that sorts after h
str_sort(x, locale = "cs")
#> [1] "apple" "car" "happy" "char"
# Use numeric = TRUE to sort numbers in strings
x <- c("100a10", "100a5", "2b", "2a")
str_sort(x)
#> [1] "100a10" "100a5" "2a" "2b"
str_sort(x, numeric = TRUE)
#> [1] "2a" "2b" "100a5" "100a10"