R how to remove VERY special characters in strings

2019-04-10 05:03发布

I'm trying to remove some VERY special characters in my strings. i've read other post like:

  1. Remove all special characters from a string in R?
  2. How to remove special characters from a string?

but these are not what im looking for.

lets say my string is as following:

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

i've tried following:

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

none of above worked.

edit: I am looking for a GENERAL solution! I cannot (and prefer not) manually identify all the special characters.

also these VERY special characters MAY (not 100% sure) be result from emoticons

please help or guide me to the right posts. Thank you!

1条回答
贪生不怕死
2楼-- · 2019-04-10 05:33

So, I'm going to go ahead and make an answer, because I believe this is what you're looking for:

> 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?"

Now, this does have the caveat that you have to manually define the special character in the rmSpec variable. Not sure if you know what special characters to remove or if you're looking for a more general solution.

EDIT:

So it appears you almost had it with iconv, you were just missing the sub argument. See below:

> s
[1] "who are í ½í¸€ bringing?"
> s2 <- iconv(s, "UTF-8", "ASCII", sub = "")
> s2
[1] "who are   bringing?"
查看更多
登录 后发表回答