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

如何用str_replace_all()识别含'+'字符串并完成数据清洗?

解决str_replace_all()无法替换含'+'字符串的问题

问题出在+是正则表达式的特殊元字符(表示前一个字符可出现1次或多次),直接写em + call会被正则引擎解析为em后接1个或多个空格,再跟call,自然匹配不到原字符串里的em + call。

有两种简单解决方法:

方法1:转义特殊字符

在+前加双反斜杠\\(R中字符串转义需要双反斜杠),让正则引擎把它当作普通字符处理:

rep_str = c('email'='Email', 'em \\+ call'='Email + Call')
sales_no_na$sales_method <- str_replace_all(sales_no_na$sales_method, rep_str)

方法2:使用fixed()指定固定匹配

用fixed()包裹替换规则,强制函数按普通字符串精确匹配,无需处理正则转义:

rep_str = c('email'='Email', 'em + call'='Email + Call')
sales_no_na$sales_method <- str_replace_all(sales_no_na$sales_method, fixed(rep_str))

两种方法都能同时完成email和em + call的替换,推荐第二种,更直观易读。

内容的提问来源于stack exchange,提问作者Austin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 14:09:56