Entfernen von Sonderzeichen

Wie rufe ich R-Funktionen auf, wie selektiere ich Daten, ich weiß nicht genau ....

Moderatoren: EDi, jogo

Antworten
leonard_24

Entfernen von Sonderzeichen

Beitrag von leonard_24 »

Hallo zusammen,

ich würde gerne wissen, ob ich für das Entfernen von Sonderzeichen eine andere Funktion brauche, als sub/gsub.
Habe eine Datenbank mit mehreren Spalten und Zeilen und in Spalte 1 sind IDs, z.B. ABC_[D | K]
Ich würde gerne das "|" entfernen, sodass das Ergebnis da lautet : ABC_[DK], d.h. es müssen auch zwei Leerzeichen weg.
Bisher hatte ich folgenden Code, aber das funktioniert nicht, es kommt keine Fehlermeldung, er macht es einfach nicht:

Code: Alles auswählen

x[, 1] <- gsub(" | ", "", x[,1])
Die Leerzeichen werden entfernt, dass "|" aber nicht??
Hat jemand eine Idee warum?

Viele Grüße
jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: Entfernen von Sonderzeichen

Beitrag von jogo »

Hallo Leonard,

der senkrechte Strich ist ein Operator bei den regulären Ausdrücken.
https://stackoverflow.com/questions/473 ... xpressions
Wenn Du die Funktionalität der regulären Ausdrücke bei gsub() nicht möchtest, musst Du fixed=TRUE setzen.

Code: Alles auswählen

x <- "ABC_[D | K]"
gsub(" | ", "", x, fixed=TRUE)

Bei der Zeichenkettenmanipulation sind reguläre Ausdrücke sowas wie der Zaubertrank bei Asterix. Wenn Du z.B. links und rechts neben dem senkrechten Strich eine unbekannte Anzahl von Leerzeichen hast, die Du entfernen möchtest:

Code: Alles auswählen

x <- "ABC_[D | K]"
gsub(" *\\| *", "", x)
Um die Operator-Bedeutung von | aufzuheben, muss man das entsprechend anzeigen (die zwei Backslashes).
Oder Du entfernst alle Zeichen, die links und rechst von Leerzeichen begrenzt werden (einschließlich dieser Begrenzungen):

Code: Alles auswählen

x <- "ABC_[D | K]"
gsub(" .* ", "", x)
Gruß, Jörg
leonard_24

Re: Entfernen von Sonderzeichen

Beitrag von leonard_24 »

super, danke!
Antworten