R データフレームの検索と置換
UB3/informatics/r/dataframe_replace
このページの最終更新日: 2025/01/05- gsub を使う方法
- 列を指定して置換
- データフレーム全体で置換
- 複数の文字列を msub でまとめて置換する方法
- dplyr パッケージを使う方法
広告
gsub を使う方法
文字と数字の両方が入っているデータを例にしたいので、組み込みデータセット の chickwts を使う。エサと体重の関係を示したデータである。

列を指定して置換
feed の列を指定して、"bean" を "mame" に置換してみる。
df["feed"] <- lapply(df["feed"], gsub, pattern="bean", replacement = "mame")
horsemame に変換されているのがわかる。数字も対象にできるようで、weight を対象に 1 を 100 に変換したりするのも大丈夫だった。

データフレーム全体で置換
これは 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["feed"] <- lapply(df["feed"], mgsub::mgsub, pattern = c ("bean", "seed"), replacement = c("mame", "tane"))
これでいけると思ったんだが、エラーになる。あとで検討。
dplyr パッケージを使う方法
更新予定。とりあえずは文献 1 を参照のこと。
広告
References
コメント欄
サーバー移転のため、コメント欄は一時閉鎖中です。サイドバーから「管理人への質問」へどうぞ。