当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R stringr str_order 对字符向量进行排序、排名或排序


  • str_sort() 返回排序后的向量。

  • str_order() 返回一个整数向量,该整数向量在用于取子集时返回所需的顺序,即 x[str_order(x)]str_sort() 相同

  • str_rank() 返回值的排名,即 arrange(df, str_rank(x))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,
  ...
)

参数

x

要排序的字符向量。

decreasing

一个布尔值。如果是FALSE(默认值),则从最低到最高排序;如果 TRUE 从最高到最低排序。

na_last

NA 应该去哪里? TRUE 位于末尾,FALSE 位于开头,NA 已删除。

locale

用于比较的区域设置。有关所有可能的选项,请参阅stringi::stri_locale_list()。默认为 "en"(英语),以确保默认行为在不同平台上保持一致。

numeric

如果 TRUE ,将按数字排序数字,而不是字符串。

...

用于控制排序规则的其他选项。传递给stringi::stri_opts_collator()

string 长度相同的字符向量。

也可以看看

stringi::stri_order() 用于底层实现。

例子

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"
源代码:R/sort.R

相关用法


注:本文由纯净天空筛选整理自Hadley Wickham等大神的英文原创作品 Order, rank, or sort a character vector。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。