R×forcats::fct_relevel 因子水準を手動で並べ替える

R言語のforcatsパッケージに含まれているfct_relevel()関数について解説します。この関数は、「因子型(factor)の因子水準(レベル)の『並び順』を手動で変更したい」ときに使える関数です。データの値(文字列)そのものを書き換えるfct_recode()関数やfct_relabel()関数とは異なり、見た目の文字は変えずに、内部的な順序(Levels)だけを入れ替えるのが特徴です。

forcatsパッケージは、因子型(factor型)データを操作するための強力で便利な関数を多く取り扱っています。また、Rのデータサイエンス向け主要パッケージ群であるtidyverseパッケージにも含まれています。

概要

fct_relevel()は、因子水準を手動で並べ替えるための関数です。これはstats::relevel()の一般化であり、任意の数の因子水準を任意の場所に移動できます。

使い方


fct_relevel(.f, ..., after = 0L)

引数

f

因子(または文字ベクトル)を指定します。

関数(または数式)、あるいは文字水準のいずれかを指定します。
関数は現在の水準を入力として呼び出され、その戻り値(文字ベクトルである必要があります)を使用して因子水準が再設定されます。指定されていない水準は、デフォルトで明示的に指定された水準の後に、既存の順序のまま保持されます。整頓されたドット(.)をサポートします。

after = 0L

新しい値の配置場所を指定します。

使用例

準備

あらかじめ、tidyverseパッケージまたはforcatsパッケージを読み込んでおきます。


# library(tidyverse)でもよい
library(forcats)

具体例で使用する変数を準備します。


f <- fct(c("A", "B", "C", "D", "E"))
f

[1] A B C D E
Levels: A B C D E

因子水準を手動で並べ替える

因子水準を手動で並べ替えるには次のようにします。


fct_relevel(f, "E", after = 0)

[1] A B C D E
Levels: E A B C D

参考文献