R言語で、因子(ファクター)に対して、指定割合以下しか出現しない水準を「その他」にする方法について解説します。因子の操作には、tidyverseパッケージに含まれているforcatsパッケージを使用するのが便利です。ここでは、forcatsパッケージのfct_lump_prop()を使用した方法についてお伝えします。
fct_lump_propの概要
fct_lump_prop()は、指定割合以下しか出現しない水準を「その他」にするための関数です。
fct_lump_prop()の使い方
fct_lump_prop(f, prop, w = NULL, other_level = "Other")
fct_lump_prop()の引数
f
因子(または文字ベクトル)を指定します。
prop
正のpropは、少なくともpropの回数出現しない値をまとめます。負のpropは、最大で-propの回数出現しない値をまとめます。
w = NULL
f内の(水準ではない)各値の頻度の重みを示すオプションの数値ベクトルを指定します。
other_level = “Other”
「その他」の値に使用される水準の値を指定します。
常に水準の最後に配置されます。
準備
あらかじめ、tidyverseパッケージを読み込んでおきます。
library(tidyverse)
指定割合以下しか出現しない水準を「その他」にする
指定割合以下しか出現しない水準を「その他」にするには次のようにします。
f <- factor(c(rep("A", 5), rep("B", 5), rep("C", 2)))
fct_lump_prop(f, 0.2)
[1] A A A A A B B B B B Other Other
Levels: A B Other
R×forcats::fct_lump_prop 指定割合以下しか出現しない水準を「その他」にする