R言語のstringrパッケージに含まれているstr_sort()関数について解説します。この関数は、「文字列のベクトルを、アルファベット順や五十音順(文字コード順)に並び替えたい(ソートしたい)」ときに使える関数です。Rの基本関数にはsort()がありますが、str_sort()は言語(ロケール)の違いによる並び替え順を正確にコントロールできるのが強みです。
stringrパッケージは、文字列データを操作するための強力で便利な関数を多く取り扱っています。また、Rのデータサイエンス向け主要パッケージ群であるtidyverseパッケージにも含まれています。
概要
str_sort()は、文字ベクトルをソートするための関数です。
使い方
str_sort(
x,
decreasing = FALSE,
na_last = TRUE,
locale = "en",
numeric = FALSE,
...
)
引数
文字ベクトルまたは文字ベクトルに変換可能なものを指定します。
真偽値を指定します。
– FALSE(デフォルト): 低い順から高い順にソート
– TRUE : 高い順から低い順にソート
NAをどこに配置するかを指定します。
– TRUE: 末尾に置き、NA は削除
– FALSE: 先頭に置き、NA は削除
比較に使用するロケールを指定します。
使用可能なすべてのオプションについては、stringi::stri_locale_list() を参照してください。デフォルトの動作がプラットフォーム間で一貫しているように、デフォルトは “en”(英語)です。
真偽値を指定します。TRUE の場合、数字を文字列ではなく数値としてソートします。
照合を制御するために使用されるその他のオプションを指定します。stringi::stri_opts_collator() に渡されます。
使用例
準備
あらかじめ、tidyverseパッケージまたはstringrパッケージを読み込んでおきます。
# library(tidyverse)でもよい
library(stringr)
文字列を並び替える
文字列「りんご」と「ごりら」、「らっぱ」をソートしたベクトルを取得するには次のようにします。
str_sort(c("りんご", "ごりら", "らっぱ"))
[1] "ごりら" "らっぱ" "りんご"