R如何删除字符串中的非常特殊字符?

时间:2016-02-25 22:05:10

标签: r special-characters

我正在尝试删除字符串中的一些非常特殊的字符。 我读过其他帖子:

  1. Remove all special characters from a string in R?
  2. How to remove special characters from a string?
  3. 但这些并不是我想要的。

    让我的字符串如下:

    s = "who are í ½í¸€ bringing?"
    

    我试过以下:

    test = tm_map(s, function(x) iconv(enc2utf8(x), sub = "byte"))
    test = iconv(s, 'UTF-8', 'ASCII')
    

    以上都没有奏效。

    修改 我正在寻找一个通用的解决方案! 我不能(也不愿意)手动识别所有特殊字符。

    这些非常特殊的字符可能(不是100%肯定)是表情符号的结果

    请帮助或指导我找到合适的帖子。 谢谢!

1 个答案:

答案 0 :(得分:4)

所以,我会继续做出回答,因为我相信这是你正在寻找的:

> s = "who are í ½í¸€ bringing?"
> rmSpec <- "í|½|€" # The "|" designates a logical OR in regular expressions.
> s.rem <- gsub(rmSpec, "", s) # gsub replace any matches in remSpec and replace them with "".
> s.rem
[1] "who are  ¸ bringing?"

现在,您需要在rmSpec变量中手动定义特殊字符。不确定您是否知道要删除的特殊字符,或者您是否正在寻找更通用的解决方案。

编辑:

所以看起来你差点用iconv,你只是错过了sub参数。见下文:

> s
[1] "who are í ½í¸€ bringing?"
> s2 <- iconv(s, "UTF-8", "ASCII", sub = "")
> s2
[1] "who are   bringing?"