R×forcats::fct_unify 因子リストの因子水準を統一する

R言語で、因子リストの因子水準を統一する方法について解説します。因子の操作には、tidyverseパッケージに含まれているforcatsパッケージを使用するのが便利です。ここでは、forcatsパッケージのfct_unify()を使用した方法についてお伝えします。

fct_unify()の概要

fct_unify()は、因子リストの因子水準を統一するための関数です。

fct_unify()の使い方


fct_unify(fs, levels = lvls_union(fs))

fct_unify()の引数

fs

因子リストを指定します。

levels = lvls_union(fs)

各因子に適用する水準の集合を指定します。
デフォルトではすべての因子水準の和集合になります。

準備

あらかじめ、tidyverseパッケージを読み込んでおきます。


library(tidyverse)

解説のために、次の因子を使用します。


fs <- list(fct(c("a")),
           fct(c("a", "b")),
           fct(c("a", "b", "c")))
fs

[[1]]
[1] a
Levels: a

[[2]]
[1] a b
Levels: a b

[[3]]
[1] a b c
Levels: a b c

使用例

因子リストの因子水準を統一するには次のようにします。


fct_unify(fs)

[[1]]
[1] a
Levels: a b c

[[2]]
[1] a b
Levels: a b c

[[3]]
[1] a b c
Levels: a b c