R logo

str_count(string, pattern) は、文字列内に正規表現pattern がいくつ出現するかをカウントする関数。

この関数は、stringr パッケージに含まれているので、まずは、library(stringr) でパッケージを読み込む。

install.packages("stringr")
library(stringr)

str_count()

str_count()の基本構文
str_count(string, pattern)
  • 引数:
    • string: 文字列または文字ベクトル。カウント対象のテキストを指定する。
    • pattern: 正規表現パターン。カウントする文字や部分文字列のパターンを指定する。
  • 戻り値:
    • string が1つの場合は、pattern に一致する部分の出現回数 (整数) を返す。
    • string が複数の要素を持つベクトルの場合は、各要素について一致する部分の出現回数のベクトルが返される。

使用例

単一の文字列に対するカウント

str_count("banana", "a")
output
3
  • "banana" には "a" が3回含まれている。
  • ベクトルに対するカウント

strings <- c("apple", "banana", "cherry")
str_count(strings, "a")
output
1 3 0
  • "apple" には "a" が1回
  • "banana" には "a" が3回
  • "cherry" には "a" が0回

正規表現の使用

str_count()は、文字列内に正規表現パターンを使用して、特定の文字列の出現回数をカウントすることができる。

正規表現を使った例

母音のカウント

str_count("banana", "[aeiou]")
output
result: 3
  • [aeiou] は母音 (a, e, i, o, u) に一致する正規表現で、"banana" には "a" が3回含まれているため、3が返される。

複数のパターンのカウント

str_count("banana123", "\\d")
output
result: 3
  • \\d は数字 (0-9) に一致する正規表現で、"banana123" には "1", "2", "3" の3つの数字が含まれているため、3が返される。

パターンの複数の出現をまとめてカウント

str_count("abc abc abc", "abc")
output
result: 3
  • "abc" というパターンが3回出現しているので、3が返される。

パターンの連続した出現のカウント

str_count("aaaaa", "aa")
output
result: 2
  • aa というパターンは、"aaaaa" の中で重複部分を含めると2回一致する(最初の "aa" と2つ目の "aa" で2回)。

 

ポイント
  • 重複する部分もカウントする: str_count では、パターンがオーバーラップして出現する場合(例えば "aaaaa" に対する "aa")でも、そのカウントの仕方には注意が必要。
  • 正規表現を使用できる: str_count では、簡単な文字列だけでなく、正規表現 を使ったパターンのマッチングが可能。
  • ベクトル化された処理: string にベクトルを渡すと、すべての要素ごとに pattern の出現回数をカウントしてくれるため、for文を使う必要がない。

まとめ

  • str_count(string, pattern) は、指定した stringpattern がいくつ含まれるかをカウントする。
  • 正規表現が使えるため、単純な文字のカウントから複雑なパターンのマッチングまで幅広く対応できる。
  • ベクトル化されているので、複数の文字列に対しても簡単に使える。