« [Anaconda]condaでパッケージをアップデートしようすると失敗する | トップページ | [R]正規表現を使用して文字列を別の文字列に置換する »

2023年11月15日 (水)

[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(正規表現)」カテゴリの記事

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

« [Anaconda]condaでパッケージをアップデートしようすると失敗する | トップページ | [R]正規表現を使用して文字列を別の文字列に置換する »

無料ブログはココログ

■■

■■■