R how to remove VERY special characters in strings?

不想你离开。 提交于 2019-12-06 03:02:09

问题


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:


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


来源:https://stackoverflow.com/questions/35639317/r-how-to-remove-very-special-characters-in-strings

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!