2017-03-06 10 views
1

Ich habe einen Datensatz von hundert Millionen Zeilen, von denen etwa 10 eine Art von Unicode Ersatzzeichen haben. Die Textdarstellung dieses speziellen Zeichens ist "< U + FFFD>" (Leerzeichen entfernen), es gibt jedoch auch andere.r - Entfernen Unicode Ersatzzeichen aus einer Zeichenfolge

Ich möchte den Charakter entfernen, aber ich war nicht in der Lage, einen Weg zu finden, das zu tun.

str <- "торгово производственн��я компания" 
gsub("<U+FFFD>", "", str) 
"торгово производственн��я компания" 

Wenn ich zusätzliche Informationen zur Verfügung stellen müssen, lassen Sie es mich bitte wissen. Auch wäre ich sehr dankbar für eine Erklärung, was genau hier passiert (wie in warum eine normale gsub nicht funktioniert und warum es so anzeigt)

+1

Versuchen 'gsub ("\ uFFFD", "", str, fest = TRUE)' –

+0

@ WiktorStribiżew Danke, das hat perfekt funktioniert – Alexvonrass

Antwort

2

Sie verwenden eine gsub Funktion mit einem Regex-Muster als erste Streit. <U+FFFD> Muster entspricht <, 1 oder mehr U Symbole, und dann eine FFFD> Folge von Zeichen.

Es würde so funktionieren:

> str2 <- "торгово <UUUFFFD> производственн��я компания" 
> gsub("<U+FFFD>", "", str2) 
[1] "торгово производственн��я компания" 

Verwenden Sie einen bloßen Zeichenkette Ersatz:

> str <- "торгово производственн��я компания" 
> gsub("\uFFFD", "", str, fixed=TRUE) 
[1] "торгово производствення компания" 
Verwandte Themen