2016-05-17 11 views
6

Ich habe ein Feld von Strings in einem Datenrahmen alle ähnlich:R gsub ein einziges doppeltes Anführungszeichen

"Young Adult – 8-9"" 

, wo die innere Single "ist, was ich mit nichts ersetzen will zu bekommen:

?
"Young Adult - 8-9" 

Wie kann ich dies tun, habe ich versucht, mit einem doppelten Backslash zu entkommen:

gsub("\\"", "", string) 

aber habe diesen Fehler: Fehler: Unerwartete Zeichenfolgenkonstante in "gsub (" \ "" "," "

+1

sehen, ist 'string' als' String erstellt <- ' "Young Adult - 8-9" "'' oder 'Zeichenfolge <- 'Young Adult - 8-9" ''? – nrussell

+1

Sie benötigen einen weiteren Backslash (damit Ihr Code ausgeführt wird - ob Sie das tun, was Sie wollen, ist eine andere Frage) – eddi

+3

Ein Backslashes funktioniert auch weniger. Oder einfach '' '' '. – alistaire

Antwort

7

Sie müssen kein doppeltes Anführungszeichen in einem regulären Ausdruck vermeiden. Verwenden Sie einfach "\"", um ein einzelnes Anführungszeichen zu finden.

s = "Young Adult – 8-9\"" 
s 
[1] "Young Adult – 8-9\"" 
gsub("\"", "", s) 
[1] "Young Adult – 8-9" 

this IDEONE demo

+0

Eigentlich ist es noch besser,' gsub ("\" "," ", s, fixed = TRUE)' zu verwenden - keine Notwendigkeit, das erste Argument an die Regex-Engine zu übergeben. –