You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言如何使用str_replace_all一次性完成多字符串批量替换?

解决方案

你报错的核心原因有两个:

  1. str_replace_all 需要接收字符串向量作为处理对象,你直接把整个 df 数据框传入管道,不符合参数要求
  2. 替换规则参数需要传入命名向量(格式为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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 22:45:09