R言語のforcatsパッケージに含まれているfct_lump_lowfreq()関数について解説します。この関数は、「出現頻度(カウント)が少ないレアなカテゴリを、自動でその他(”Other”)にまとめてスッキリさせたい」ときに使える関数です。データの分布を見て、「頻度が低いものはまとめてしまいたいけれど、具体的に『上位何個を残す(fct_lump_n)』とか『割合が何%未満(fct_lump_prop)』と数値を指定するのが面倒なとき」に、最も手軽に使える関数です。
forcatsパッケージは、因子型(factor型)データを操作するための強力で便利な関数を多く取り扱っています。また、Rのデータサイエンス向け主要パッケージ群であるtidyverseパッケージにも含まれています。
概要
fct_lump_lowfreq()は、最も頻繁に出現しない水準を「その他」にするための関数です。
使い方
fct_lump_lowfreq(f, w = NULL, other_level = "Other")
引数
f
因子(または文字ベクトル)を指定します。
w = NULL
f内の(水準ではない)各値の頻度の重みを示すオプションの数値ベクトルを指定します。
other_level = “Other”
「その他」の値に使用される水準の値を指定します。
常に水準の最後に配置されます。
使用例
準備
あらかじめ、tidyverseパッケージまたはforcatsパッケージを読み込んでおきます。
# library(tidyverse)でもよい
library(forcats)
最も頻繁に出現しない水準を「その他」にする
最も頻繁に出現しない水準を「その他」にするには次のようにします。
f <- factor(c(rep("A", 5), rep("B", 4), rep("C", 3), rep("D", 2)))
fct_lump_lowfreq(f)
[1] A A A A A B B B B C C C Other Other
Levels: A B C Other