R言語のforcatsパッケージに含まれているfct_collapse()関数について解説します。この関数は、「複数の因子水準を、指定した新しい水準に一括で統合・集約したい」ときに使える関数です。データのカテゴリが細かすぎる場合や、表記揺れを統一したい場合に非常に便利です。
forcatsパッケージは、因子型(factor型)データを操作するための強力で便利な関数を多く取り扱っています。また、Rのデータサイエンス向け主要パッケージ群であるtidyverseパッケージにも含まれています。
概要
fct_collapse()は、因子水準を手動で定義されたグループにまとめるための関数です。
使い方
fct_collapse(.f, ..., other_level = NULL, group_other = "DEPRECATED")
引数
.f
因子または文字列ベクトルを指定します。
…
名前付き文字ベクトルのシリーズを指定します。各ベクトルのレベルは名前に置き換えられます。
other_level = NULL
「other」の値に使用される水準の値を指定します。
常にレベルの最後に配置されます。
group_other = “DEPRECATED”
非推奨・… に指定されていないすべての水準を「other」に置き換えるかどうかを指定します。
使用例
準備
あらかじめ、tidyverseパッケージまたはforcatsパッケージを読み込んでおきます。
# library(tidyverse)でもよい
library(forcats)
解説のために、次の因子を使用します。
F <- fct(letters[floor(runif(20, min = 1, max = 5))])
F
[1] d a b a b a c b d d c b c d a b a b d b
Levels: d a b c
因子水準を手動でまとめる
因子Fに対して、因子水準を手動でまとめるには次のようにします。
fct_collapse(
F,
X = c("a", "b"),
Y = "c"
)
[1] d X X X X X Y X d d Y X Y d X X X X d X
Levels: d X Y