如何使用 dplyr 替换列中的字符串


您可以使用dplyr包中的函数使用以下方法来替换数据框特定列中的字符串:

方法一:用新字符串替换字符串

 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”运算符( | )告诉 R 我们希望用空字符串替换所有等于“P_”或“S_”的字符串。

您可以随意使用任意多个“OR”( | ) 运算符,一次替换列中任意多个值。

其他资源

以下教程解释了如何使用 dplyr 执行其他常见任务:

如何使用 dplyr 对值重新编码
如何在 dplyr 中用零替换 NA
如何使用 dplyr 过滤包含特定字符串的行

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注