R言語で、因子の値と文字列が一致するか判定する方法について解説します。因子の操作には、tidyverseパッケージに含まれているforcatsパッケージを使用するのが便利です。ここでは、forcatsパッケージのfct_match()を使用した方法についてお伝えします。
fct_matchの概要
fct_match()は、因子の値と文字列が一致するか判定するための関数です。一致したものがない場合にはエラーとなることにご注意ください。
fct_match()の使い方
fct_match(f, lvls)
fct_match()の引数
f
因子(または文字ベクトル)を指定します。
lvls
検索する水準の文字ベクトルを指定します。
fct_match()の戻り値
真偽値のベクトルを返します。
準備
あらかじめ、tidyverseパッケージを読み込んでおきます。
library(tidyverse)
因子の値と文字列が一致するか判定する
因子の値とで文字列が一致するか判定するるには次のようにします。
f <- factor(c(rep("A", 5), rep("B", 5), rep("C", 2)))
fct_match(f, c("A", "B"))
[1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE FALSE FALSE
一致したものがない場合にはエラーとなります。
f <- factor(c(rep("A", 5), rep("B", 5), rep("C", 2)))
fct_match(f, c("A", "Z"))
Error in `fct_match()`:
! All `lvls` must be present in `f`.
ℹ Missing levels: "Z"
Run `rlang::last_trace()` to see where the error occurred.
R×forcats::fct_match 因子の値と文字列が一致するか判定する