R×stringr::str_like SQLのLIKE演算子と同じ方法で文字列のパターンを検出する

R言語のstringrパッケージに含まれているstr_like()関数について解説します。この関数は、「SQLのLIKE演算子と同じ感覚で、シンプルなワイルドカード検索をしたい」ときに使える関数です。結果は真偽値(TRUEまたはFALSE)で返ってくるため、データのフィルタリング(抽出)に最適です。

stringrパッケージは、文字列データを操作するための強力で便利な関数を多く取り扱っています。また、Rのデータサイエンス向け主要パッケージ群であるtidyverseパッケージにも含まれています。

概要

str_like()は、SQLのLIKE演算子と同じ方法で文字列のパターンを検出するための関数です。str_like()は、SQLのLIKE演算子の規則に従います。

  • 文字列全体に一致する必要があります
  • 「_」は、1文字と一致します(. など)
  • 「%」は、任意の数の文字と一致します(.* など)
  • 「\%」と「\_」は、リテラルの「%」と「_」に一致します
  • デフォルトでは、大文字と小文字は区別されません

使い方


str_like(string, pattern, ignore_case = TRUE)

引数

string

文字ベクトルまたは文字ベクトルに変換可能なものを指定します。

pattern

SQLの「like」パターンを含む文字ベクトルを指定します。
詳細は上記を参照してください。

ignore_case = TRUE

大文字と小文字を区別するかどうかを指定します。
デフォルトはTRUEで、SQLのLIKE演算子に一致します。

戻り値

文字列と同じ長さの論理ベクトルが返されます。

使用例

準備

あらかじめ、tidyverseパッケージまたはstringrパッケージを読み込んでおきます。


# library(tidyverse)でもよい
library(stringr)

ワイルドカードを使って文字列を検索

文字列「あいうえお」と「かきくけこ」で文字列「あ」から始まる文字列かどうかを確認するには次のようにします。


str_like(c("あいうえお", "かきくけこ"), "あ%")

[1]  TRUE FALSE

参考文献