R データフレームの検索と置換

UB3/informatics/r/dataframe_replace

このページの最終更新日: 2023/02/14

  1. gsub を使う方法
    • 列を指定して置換
    • データフレーム全体で置換
  2. 複数の文字列を msub でまとめて置換する方法
  3. dplyr パッケージを使う方法

広告

gsub を使う方法

文字と数字の両方が入っているデータを例にしたいので、組み込みデータセット の chickwts を使う。エサと体重の関係を示したデータである。

R 組み込みデータセット chickwts

列を指定して置換

feed の列を指定して、"bean" を "mame" に置換してみる。

df <- chickwts
df["feed"] <- lapply(df["feed"], gsub, pattern="bean", replacement = "mame")

horsemame に変換されているのがわかる。数字も対象にできるようで、weight を対象に 1 を 100 に変換したりするのも大丈夫だった。

R 組み込みデータセット chickwts

データフレーム全体で置換

これは cars を使ってみよう。

Rの組み込みデータセット cars

df <- cars
df <- data.frame(lapply(df, function(x){gsub(pattern = "1", replacement = "10", x)}), stringsAsFactors = FALSE)

これで、数字の 1 が全て 10 に変換される。

複数の文字列を mgsub でまとめて置換する方法

列指定で、gsub のかわりに mgsub::mgsub を使うと、pattern, replacement ともにベクターで指定で きる。

df <- chickwts
df["feed"] <- lapply(df["feed"], mgsub::mgsub, pattern = c ("bean", "seed"), replacement = c("mame", "tane"))

これでいけると思ったんだが、エラーになる。あとで検討。

dplyr パッケージを使う方法

更新予定。とりあえずは文献 1 を参照のこと。


広告

References

  1. Rで複数の異なる要素を一括で置換する
  2. Rのデータフレームで検索と置換をする方法

コメント欄

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