[R]正規表現を使用して文字列を別の文字列に置換する
gsub関数を使う。元となる文字列にはベクトルを指定することができる。
> s <- c("ABCD", "BCDE", "CDEF")
> gsub("B", "b", s)
[1] "AbCD" "bCDE" "CDEF"
> gsub("^B", "b", s)
[1] "ABCD" "bCDE" "CDEF"
> gsub("[E-F]", "b", s)
[1] "ABCD" "BCDb" "CDbb"
> gsub("[E-F]$", "b", s)
[1] "ABCD" "BCDb" "CDEb"
ただ文字列を置換するのではなく、パターンに含まれる文字列を使用して置き換えたい場合は、キャプチャによるグループ化を利用する。パターン内で( )(括弧)に挟まれた範囲はグループ化(キャプチャという)される。このグループには、キャプチャされた順番に1から始まる連番が付けられ、置換後の文字列で\1, \2, …と挿入することで、置換後の文字列に挿入することができる(実際にはエスケープシーケンスを使用する必要があるので、\\1, \\2, …とする)。
以下は7桁の数字(○○○○○○○)を郵便番号の表記(○○○-○○○○)に置き換えた例。
> s <- c("1234567", "9876543", "3210")
> gsub("([0-9]{3})([0-9]{4})", "\\1-\\2", s)
[1] "123-4567" "987-6543" "3210"
« [Anaconda]condaでパッケージをアップデートしようすると失敗する | トップページ | [R]正規表現を使用して文字列を別の文字列に置換する »
「R(正規表現)」カテゴリの記事
- [R]正規表現でIPv4によるIPアドレス表記の文字列かどうか判定する(2026.02.26)
- [R]文字列が指定の正規表現パターンとマッチするかどうか調べる(2025.12.23)
- [R]正規表現を使用して文字列型ベクトルから特定の文字列を含む要素を取り出す(2025.12.06)
- [R]特定の文字列で始まる(始まらない)文字列を抽出する(2025.11.09)
- [R]パターンにマッチするか否かを論理値で返す(2024.12.25)
« [Anaconda]condaでパッケージをアップデートしようすると失敗する | トップページ | [R]正規表現を使用して文字列を別の文字列に置換する »

コメント