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