R言語で、SQLのLIKE演算子と同じ方法で文字列のパターンを検出する方法について解説します。文字列の操作には、tidyverseパッケージに含まれているstringrパッケージを使用するのが便利です。ここでは、stringrパッケージのstr_like()を使用した方法についてお伝えします。
str_like()の概要
str_like()は、SQLのLIKE演算子と同じ方法で文字列のパターンを検出するための関数です。str_like()は、SQLのLIKE演算子の規則に従います。
- 文字列全体に一致する必要があります
- 「_」は、1文字と一致します(. など)
- 「%」は、任意の数の文字と一致します(.* など)
- 「\%」と「\_」は、リテラルの「%」と「_」に一致します
- デフォルトでは、大文字と小文字は区別されません
str_like()の使い方
str_like(string, pattern, ignore_case = TRUE)
str_like()の引数
string
文字ベクトルまたは文字ベクトルに変換可能なものを指定します。
pattern
SQLの「like」パターンを含む文字ベクトルを指定します。
詳細は上記を参照してください。
ignore_case = TRUE
大文字と小文字を区別するかどうかを指定します。
デフォルトはTRUEで、SQLのLIKE演算子に一致します。
str_like()の戻り値
文字列と同じ長さの論理ベクトルが返されます。
準備
あらかじめ、tidyverseパッケージを読み込んでおきます。
library(tidyverse)
使用例
文字列「あいうえお」と「かきくけこ」で文字列「あ」から始まる文字列かどうかを確認するには次のようにします。
str_like(c("あいうえお", "かきくけこ"), "あ%")
[1] TRUE FALSE