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

fct_inorder()の概要

fct_inorder()は、因子水準を最初に出現した順に並び替えるための関数です。

fct_inorder()の使い方

forcats::fct_inorder()の使い方は次になります。


fct_inorder(f, ordered = NA)

fct_inorder()の引数の意味

f

因子を指定します。

ordered = NA

出力を「順序付けられた因子」にするかどうかの論理値を指定します。
NAは既存の状態を保持します。

準備

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


library(tidyverse)

解説のために、次の因子を使用します。


f <-  fct(c("a", "c", "b", "d"), levels = c("a", "c", "b", "d"))

因子水準を最初に出現した順に並び替える

因子fに対して、因子水準を最初に出現した順に並び替えるには次のようにします。


fct_inorder(f)

[1] a c b d
Levels: a c b d

因子fに対して、因子水準を最初に出現した順に並び替え、順序付けられた因子として得るには次のようにします。


fct_inorder(f, TRUE)

[1] a c b d
Levels: a < c < b < d
R×forcats::fct_inorder 因子水準を最初に出現した順に並び替える