如何使用 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 执行其他常见任务: