R言語で、文字ベクトルを順序付けする方法について解説します。文字列の操作には、tidyverseパッケージに含まれているstringrパッケージを使用するのが便利です。ここでは、stringrパッケージのstr_order()を使用した方法についてお伝えします。
str_order()の概要
str_order()は、文字ベクトルを順序付けするための関数です。str_order() は、データ抽出に使用した場合に、目的の順序を返す整数ベクトルを返します。つまり、x[str_order(x)] は str_sort() と同じです。
str_order()の使い方
str_order(
x,
decreasing = FALSE,
na_last = TRUE,
locale = "en",
numeric = FALSE,
...
)
str_order()の引数
x
文字ベクトルまたは文字ベクトルに変換可能なものを指定します。
decreasing = FALSE
真偽値を指定します。
– FALSE(デフォルト): 低い順から高い順にソート
– TRUE : 高い順から低い順にソート
na_last = TRUE
NAをどこに配置するかを指定します。
– TRUE: 末尾に置き、NA は削除
– FALSE: 先頭に置き、NA は削除
locale = “en”
比較に使用するロケールを指定します。
使用可能なすべてのオプションについては、stringi::stri_locale_list() を参照してください。デフォルトの動作がプラットフォーム間で一貫しているように、デフォルトは “en”(英語)です。
numeric = FALSE
真偽値を指定します。TRUE の場合、数字を文字列ではなく数値としてソートします。
…
照合を制御するために使用されるその他のオプションを指定します。stringi::stri_opts_collator() に渡されます。
準備
あらかじめ、tidyverseパッケージを読み込んでおきます。
library(tidyverse)
使用例
文字列「りんご」と「ごりら」、「らっぱ」の順位付けしたベクトルを取得するには次のようにします。
str_order(c("りんご", "ごりら", "らっぱ"))
[1] 2 3 1