Dplyrを使用して列内の文字列を置換する方法


dplyrパッケージの関数を使用して、次のメソッドを使用してデータ フレームの特定の列の文字列を置換できます。

方法 1: 文字列を新しい文字列に置き換える

 library (dplyr)
library (stringr) 

df %>% 
  mutate(across(' column_name ', str_replace, ' old_value ', ' new_value '))

方法 2: 複数の文字列を新しい文字列に置き換える

 library (dplyr)
library (stringr) 

df %>% 
  mutate(across(' column_name ', str_replace, ' old_value1|old_value2 ', ' new_value '))

次の例は、R の次のデータ フレームで各メソッドを使用する方法を示しています。

 #create data frame
df <- data. frame (conf=c('East', 'East', 'West', 'West'),
                 position=c('P_Guard', 'P_Guard', 'S_Guard', 'S_Guard'),
                 dots=c(22, 25, 29, 13))

#view data frame
df

  conf position points
1 East P_Guard 22
2 East P_Guard 25
3 West S_Guard 29
4 West S_Guard 13

例 1: 文字列を新しい文字列に置き換える

次のコードは、 conf列の文字列「East」を文字列「Eastern」に置き換える方法を示しています。

 library (dplyr)
library (stringr)

#replace 'East' with 'Eastern' in conf column
df %>% 
  mutate(across(' conf ', str_replace, ' East ', ' Eastern '))

     conf position points
1 Eastern P_Guard 22
2 Eastern P_Guard 25
3 West S_Guard 29
4 West S_Guard 13

conf列の各「East」文字列が「Eastern」に置き換えられていますが、他のすべての列は変更されていないことに注意してください。

例 2: 複数の文字列を新しい文字列に置き換えます。

次のコードは、 conf列の文字列「P_」と「S_」を空の文字列に置き換える方法を示しています。

 library (dplyr)
library (stringr)

#replace 'P_' and 'S_' with empty string in position column
df %>% 
  mutate(across(' position ', str_replace, ' P_|S_ ', ''))

  conf position points
1 East Guard 22
2 East Guard 25
3 West Guard 29
4 West Guard 13

位置列の各文字列「P_」と「S_」が空の文字列に置き換えられ、他の列はすべて変更されないことに注意してください。

「OR」演算子 ( | ) を使用して、「P_」または「S_」に等しいすべての文字列を空の文字列に置き換えたいことを R に伝えていることに注意してください。

一度に列内の値をいくつでも置換するには、「OR」( | ) 演算子を自由に使用してください。

追加リソース

次のチュートリアルでは、dplyr を使用して他の一般的なタスクを実行する方法について説明します。

dplyrを使用して値を再コード化する方法
dplyr で NA をゼロに置き換える方法
dplyrを使用して特定の文字列を含む行をフィルタリングする方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です