【发布时间】:2019-02-11 18:20:21
【问题描述】:
我是 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("\\<\\>\\+", "", .)))
我确信我遗漏了一些对于论坛上的大多数人来说显而易见的东西,但是对于我的生活,我不明白为什么它不会只删除 + 字符。
【问题讨论】:
-
gsub('[your_characters_to_match]+', '', vector)应该没问题。你有任何字符串示例吗? -
是的,
"[<+>]+"模式应该删除所有这些。使用括号,您无需转义任何内容。 -
抱歉,没有意识到符号已从我粘贴的示例中删除。 “CUB00716”就是一个例子。我现在只是在尝试你的建议,认为这对我来说是一个语法问题。
-
这些很可能是 Unicode 字符,而不是文字
<、+和>字符。 -
@WiktorStribiżew 我可以吻你。我已经挣扎了 3 个小时尝试正则表达式、gsub 和天知道还有什么。是的,它们是 unicode。我用了iconv,它们不见了。一些卑鄙的人投了-1票是值得的。再次感谢