R ベクター内の文字列を置換する sub関数、gsub関数

UB3/informatics/r/vector

このページの最終更新日: 2024/02/05

  1. ベクター内の文字列を置換する gsub() 関数、sub()関数
  2. データフレームの行名、列名を置換する

広告

ベクター内の文字列を置換する gsub() 関数、sub()関数

gsub を使うと、ベクター内の文字列を全て置換することができる (1)。sub() を使うと、該当する最初の文字列だけが置換される。どういうときに便利なのか、ちょっとよくわからない。

単に gsub を実行しても、置換後のベクターが表示されるだけなので、データを書き換えたい場合には、もとのベクターに置換したものを挿入する形にする。

ベクター <- gsub("置換前の文字列", "置換後の文字列", ベクター名)

特殊文字の置換

gsub で特殊文字を置換するときは、\\ でエスケープする必要がある。

エスケープが必要な文字は、例えば以下のようなもの: [ ] . ( )

gsub("\\.", "置換後の文字列", ベクター名) #ドットの置換
gsub("\\.\\.", "置換後の文字列", ベクター名) #2つ続くときは1つずつエスケープする

データフレームの行名、列名を置換する

データフレームの行名および列名に含まれる文字列を置換したい場合は、rownames() または colnames() と gsub() 数を組み合わせて次のようにする。データフレームの行名、列名を扱う も参照のこと。

vec <- rownames(df)
vec <- gsub("置換前の文字列", "置換後の文字列", vec)
rownames(df) <- vec

これは、実際はベクターを作ることなく、rownames() または colnames() を直接使うことができる。

colnames(df) <- gsub("置換前の文字列", "置換後の文字列", colnames(df))


広告

References

  1. Rで解析:文字列操作と検索「grep」と置換「gsub」コマンドの紹介.Link: Last access 2022/09/22.

コメント欄

サーバー移転のため、コメント欄は一時閉鎖中です。サイドバーから「管理人への質問」へどうぞ。