R语言如何使用str_replace_all一次性完成多字符串批量替换?
解决方案
你报错的核心原因有两个:
str_replace_all需要接收字符串向量作为处理对象,你直接把整个df数据框传入管道,不符合参数要求- 替换规则参数需要传入命名向量(格式为
c("待匹配文本"="替换后文本")),你直接传入rep数据框也不符合要求
实现代码
# 加载依赖包 library(dplyr) library(stringr) # 从rep数据框构造符合要求的替换命名向量 # 这里默认待匹配文本是把rep$x的下划线替换为空格,和你手动写的规则一致 replace_vec <- setNames(rep$x, gsub("_", " ", rep$x)) # 批量替换得到结果 result <- df %>% mutate(x = str_replace_all(x, replace_vec))
如果你的替换规则不需要动态生成,也可以直接手动定义替换向量:
replace_vec <- c("political risk" = "political_risk", "good researcher" = "good_researcher") result <- df %>% mutate(x = str_replace_all(x, replace_vec))
运行后查看result$x即可确认替换结果。
内容的提问来源于stack exchange,提问作者Rollo99
相关产品推荐
相关产品推荐

