首页 > 解决方案 > gsub 包含特殊字符的字符串

问题描述

我是 R 新手,虽然我可以看到我的问题的变体已被多次询问,但我似乎无法找到任何 gsub 的变体,它只是删除了特殊字符。实际上,我撞到了一堵砖墙。

我有一个包含 73 个变量的数据框。变量 2,AGENT_REFERENCE_BROKER,是基于字符的。

因此,此列中某个字段的示例如下:<U+00A0>CUB00716

我只需要删除以下字符,< + >

根据互联网上的示例,我已经浏览了大约 30 种不同的 gsub、dplyr 和正则表达式组合,但没有一个人做过任何删除这些字符的操作。

我知道 + 是作为转义字符的类,因此需要一个 \ 或一个固定 = TRUE 的参数,或者 + 位于括号 [] 中。

我尝试过的一些 gsub 命令的示例如下。

clean$AGENT_REFERENCE_BROKER <- gsub('\\+', '', clean$AGENT_REFERENCE_BROKER)

clean$AGENT_REFERENCE_BROKER <- gsub('[+]', '', clean$AGENT_REFERENCE_BROKER)

require(dplyr)
clean <- clean %>%
mutate_all(funs(gsub("\\<\\>\\+", "", .)))

我确定我遗漏了一些对于这个论坛上的大多数人来说非常明显的东西,但是对于我的生活,我不明白为什么它不会仅仅删除 + 字符。

标签: rregexgsub

解决方案


这将删除 3 个指示字符:

gsub("[<>+]", "", "abc+def<ghi>xyz")
### [1] "abcdefghixyz"

寻找关于字符类的讨论?regexp


推荐阅读