當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。