R言語で、未使用の因子水準を削除する方法について解説します。因子の操作には、tidyverseパッケージに含まれているforcatsパッケージを使用するのが便利です。ここでは、forcatsパッケージのfct_drop()を使用した方法についてお伝えします。
fct_drop()の概要
fct_drop()は、未使用の因子水準を削除するための関数です。fct_drop()は、base::droplevels()と比較すると、値を持つNA因子水準は削除されません。
fct_drop()の使い方
forcats::fct_drop()の使い方は次になります。
fct_drop(f, only = NULL)
fct_drop()の引数の意味
f
因子(または文字ベクトル)を指定します。
only = NULL
削除する因子水準のセットを制限する文字ベクトルを指定します。
指定すると、エントリがなく、このベクトルに現れる因子水準のみが削除されます。
準備
あらかじめ、tidyverseパッケージを読み込んでおきます。
library(tidyverse)
解説のために、次の因子を使用します。
f <- fct(c("a", "b"), levels = c("a", "b", "c", "d"))
未使用の因子水準を削除する
因子fに対して、未使用の因子水準を削除するには次のようにします。
fct_drop(f)
[1] a b
Levels: a b
因子fに対して、未使用の因子水準”c”のみを削除するには次のようにします。
fct_drop(f, only = "c")
[1] a b
Levels: a b d
R×forcats::fct_drop 未使用の因子水準を削除する