R言語のstringrパッケージに含まれているstr_rank()関数について解説します。この関数は、「文字列のベクトルを受け取り、それぞれの要素がアルファベット順(または数値順)で何番目に小さいかという順位(ランク)を取得したい」ときに使える関数です。一言で言うと、「文字列に『1位、2位、3位…』と順位をつけたいとき」に使います。
stringrパッケージは、文字列データを操作するための強力で便利な関数を多く取り扱っています。また、Rのデータサイエンス向け主要パッケージ群であるtidyverseパッケージにも含まれています。
概要
str_rank()は、文字ベクトルをランク付けするための関数です。
使い方
str_rank(x, locale = "en", numeric = FALSE, ...)
引数
x
文字ベクトルまたは文字ベクトルに変換可能なものを指定します。
locale = “en”
比較に使用するロケールを指定します。
使用可能なすべてのオプションについては、stringi::stri_locale_list() を参照してください。デフォルトの動作がプラットフォーム間で一貫しているように、デフォルトは “en”(英語)です。
numeric = FALSE
真偽値を指定します。TRUE の場合、数字を文字列ではなく数値としてソートします。
…
照合を制御するために使用されるその他のオプションを指定します。stringi::stri_opts_collator() に渡されます。
使用例
準備
あらかじめ、tidyverseパッケージまたはstringrパッケージを読み込んでおきます。
# library(tidyverse)でもよい
library(stringr)
順位付けする
文字列「りんご」と「ごりら」、「らっぱ」のランク付けしたベクトルを取得するには次のようにします。
str_rank(c("りんご", "ごりら", "らっぱ"))
[1] 3 1 2