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 因子の値と文字列が一致するか判定する