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

R言語のforcatsパッケージに含まれているfct_unify()関数について解説します。この関数は、「複数のデータセット(または複数の因子型)間で、因子水準(レベル)の定義を完全に一致させたい(統一したい)とき」ときに使える関数です。

forcatsパッケージは、因子型(factor型)データを操作するための強力で便利な関数を多く取り扱っています。また、Rのデータサイエンス向け主要パッケージ群であるtidyverseパッケージにも含まれています。

概要

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

使い方


fct_unify(fs, levels = lvls_union(fs))

引数

fs

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

levels = lvls_union(fs)

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

使用例

準備

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


# library(tidyverse)でもよい
library(forcats)

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


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

参考文献