R言語のforcatsパッケージに含まれているfct_infreq()関数について解説します。この関数は、「因子水準(カテゴリ)を、データの出現頻度(件数)が多い順に並び替える」ときに使える関数です。特にカテゴリ別の棒グラフ(パレート図など)を描く際、自動的にデータが多い順に左から並べたいときが最大の使いどころです。
forcatsパッケージは、因子型(factor型)データを操作するための強力で便利な関数を多く取り扱っています。また、Rのデータサイエンス向け主要パッケージ群であるtidyverseパッケージにも含まれています。
概要
fct_infreq()は、各因子水準の観測数の頻度の降順に並び替えるための関数です。
使い方
fct_infreq(f, w = NULL, ordered = NA)
引数
f
因子を指定します。
w = NULL
f内の各値(因子水準ではない)の頻度の重みを示すオプションの数値ベクトルを指定します。
ordered = NA
出力を「順序付けられた因子」にするかどうかの論理値を指定します。
NAは既存の状態を保持します。
使用例
準備
あらかじめ、tidyverseパッケージまたはforcatsパッケージを読み込んでおきます。
# library(tidyverse)でもよい
library(forcats)
解説のために、次の因子を使用します。
f <- fct(c("a", "b", "b", "c", "c", "c"))
因子水準を頻度の降順に並び替える
因子fに対して、因子水準を頻度の降順に並び替えるには次のようにします。
fct_infreq(f)
[1] a b b c c c
Levels: c b a