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 未使用の因子水準を削除する