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

R言語で、因子水準を手動で並べ替える方法について解説します。因子の操作には、tidyverseパッケージに含まれているforcatsパッケージを使用するのが便利です。ここでは、forcatsパッケージのfct_relevel()を使用した方法についてお伝えします。

fct_relevelの概要

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

fct_relevel()の使い方


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

fct_relevel()の引数

f

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

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

after = 0L

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

準備

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


library(tidyverse)

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


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