Wie entferne ich alle Sonderzeichen aus der Zeichenkette in R und ersetze sie durch Leerzeichen?
Einige zu entfernende Sonderzeichen sind: ~!@#$%^&*(){}_+:"<>?,./;'[]-=
Ich habe es regex
mit [:punct:]
Muster versucht , aber es entfernt nur Satzzeichen.
Frage 2: Und wie entferne ich Zeichen aus Fremdsprachen wie : â í ü Â á ą ę ś ć
?
Antwort: [^[:alnum:]]
Zum Entfernen ~!@#$%^&*(){}_+:"<>?,./;'[]-=
und [^a-zA-Z0-9]
zum Entfernen auch â í ü Â á ą ę ś ć
in regex
oder regexpr
Funktionen.
sub
odergsub
Funktionen.Antworten:
Sie müssen reguläre Ausdrücke verwenden , um die unerwünschten Zeichen zu identifizieren. Für den am leichtesten lesbaren Code möchten Sie den
str_replace_all
aus demstringr
Paket, obwohlgsub
von Basis R genauso gut funktioniert.Der genaue reguläre Ausdruck hängt davon ab, was Sie versuchen zu tun. Sie können nur die spezifischen Zeichen entfernen, die Sie in der Frage angegeben haben, aber es ist viel einfacher, alle Satzzeichen zu entfernen.
(Das Basis-R-Äquivalent ist
gsub("[[:punct:]]", " ", x)
.)Eine Alternative besteht darin, alle nicht alphanumerischen Zeichen auszutauschen.
Beachten Sie, dass die Definition eines Buchstabens, einer Zahl oder eines Interpunktionszeichens je nach Gebietsschema geringfügig variiert. Daher müssen Sie möglicherweise ein wenig experimentieren, um genau das zu erhalten, was Sie möchten.
quelle
" "
mit""
sonst haben Sie die leeren weißen Raum in der Zeichenkette.â í ü Â á
??regex
und?regexpr
.[^[:alnum:]]
mit[^a-zA-Z0-9]
oder möglicherweise zu ersetzen\\W
.Anstatt Regex zu verwenden, um diese "verrückten" Zeichen zu entfernen, konvertieren Sie sie einfach in ASCII, wodurch Akzente entfernt werden, die Buchstaben jedoch erhalten bleiben.
was in ... endet
quelle
iconv(astr, from="UFT-8", to="ASCII//TRANSLIT")
, sonst geht es mit französischen Charakterenç
ein bisschen komisch.Konvertieren Sie die Sonderzeichen in Apostroph,
Unten codieren Sie es, um zusätzliche Apostrophe zu entfernen
Verwenden Sie die
gsub(..)
Funktion, um das Sonderzeichen durch Apostroph zu ersetzenquelle