R×forcats::fct_inorder 因子水準を最初に出現した順に並び替える

R言語のforcatsパッケージに含まれているfct_inorder()関数について解説します。この関数は、「データの因子(Factor)の並び順(因子水準の順序)を、データの中に登場する順番通りに並べ替えたいとき」ときに使える関数です。通常、Rで文字列を因子型(Factor)に変換すると、アルファベット順や五十音順に自動で並べ替えられてしまいますが、この関数を使うとその自動並べ替えを防げます。

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

概要

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

使い方


fct_inorder(f, ordered = NA)

引数

f

因子を指定します。

ordered = NA

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

使用例

準備

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


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

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


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

参考文献