R×stringr::str_replace 文字列を別の文字列に一つだけ置き換える

R言語で、文字列を別の文字列に一つだけ置き換える方法について解説します。文字列の操作には、tidyverseパッケージに含まれているstringrパッケージを使用するのが便利です。ここでは、stringrパッケージのstr_replace()を使用した方法についてお伝えします。

str_replace()の概要

str_replace()は、文字列を別の文字列に一つだけ置き換えるための関数です。

str_repalce()の使い方


str_replace(string, pattern, replacement)

str_replace()の引数

string

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

pattern

検索するパターンを指定します。
デフォルトの解釈は、stringi::about_search_regex で説明されている正規表現です。regex()でオプションを制御します。
fixed()を使用して、固定文字列 (つまり、バイトのみを比較) を一致させます。これは高速ですが、近似値です。一般的に、人間のテキストを一致させるには、指定されたロケールの文字一致規則を尊重するcoll()が適しています。

replacement

置換値する文字列を指定します。
通常は単一の文字列ですが、文字列またはパターンと同じ長さのベクトルにすることもできます。\1、\2などの形式の参照は、一致したグループ(⁠()によって作成)の内容に置き換えられます。
あるいは、関数を指定します。この関数は、一致ごとに (右から左へ)1回呼び出され、その戻り値を使用して一致が置き換えられます。

str_replace()の戻り値

string/pattern/replacementと同じ長さの文字ベクトルです。

準備

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


library(tidyverse)

使用例

文字列「りんご、ごりら、らっぱ。りんご、ごりら、らっぱ。」で「ごりら」を「ごまあぶら」に一つだけ置き換えるには次のようにします。


str_replace("りんご、ごりら、らっぱ。りんご、ごりら、らっぱ。", "ごりら", "ごまあぶら")

[1] "りんご、ごまあぶら、らっぱ。りんご、ごりら、らっぱ。"