R×stringr::str_starts 文字列の先頭の一致の有無を検出する

R言語のstringrパッケージに含まれているstr_starts()関数について解説します。この関数は、「文字列が、特定の文字(またはパターン)から始まっているかどうかを判定したい」ときに使える関数です。結果をTRUEまたはFALSEの論理値(ベクトル)で返すため、データの絞り込み(フィルタリング)に最適です。

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

概要

str_starts()は、文字列の先頭の一致の有無を検出するための関数です。これは、str_detect()の特殊なケースです。

使い方


str_starts(string, pattern, negate = FALSE)

引数

string

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

pattern

検索するパターンを指定します。
デフォルトの解釈は、vignette(“regular-expressions”)で説明されている正規表現です。マッチング動作をより細かく制御するには、regex()を使用してください。
fixed()を使用して、固定文字列(つまり、バイトのみを比較する)をマッチングします。これは高速ですが、近似値です。一般的に、人間のテキストをマッチングするには、指定されたロケールの文字マッチング規則を尊重するcoll()が適しています。

negate = FALSE

TRUE の場合、結果の真偽値ベクトルを反転します。

戻り値

真偽値ベクトルを返します。

使用例

準備

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


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

先頭の文字列で判定する

文字列「あいうえおあいう」内で文字列「あ」を先頭に含むかどうかを確認するには次のようにします。


str_starts("あいうえお", pattern = "あ")

[1] TRUE

次のように、文字列のベクトルとして指定することもできます。


str_starts(c("あいうえお", "かきくけこ"), pattern = "あ")

[1]  TRUE FALSE

参考文献