2016-05-17 37 views
6

Ho un campo di stringhe in un frame di dati tutto simile a:R gsub una singola doppia virgoletta

"Young Adult – 8-9"" 

dove il singolo interno "è quello che voglio sostituire con niente ottenere:

?
"Young Adult - 8-9" 

Come posso fare questo ho cercato di fuggire con una doppia barra rovesciata:

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

ma ottenuto questo errore: errore: costante di stringa imprevista in "gsub (" \ "", ""

+1

è 'STRING' creati come' stringa <- ' "Young Adult - 8-9" "'' o 'stringa <- 'Young Adult - 8-9" ''? – nrussell

+1

hai bisogno di un altro backslash (per far funzionare il tuo codice - se farà quello che vuoi è un'altra domanda) – eddi

+3

Anche un minor numero di backslash funziona. O semplicemente "" "". – alistaire

risposta

7

Non è necessario sfuggire a una virgoletta in un'espressione regolare. Basta usare "\"" per abbinare una singola virgoletta doppia.

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

V. this IDEONE demo

+0

In realtà, è ancora meglio usare 'gsub (" \ "", "", s, fixed = TRUE) '- non c'è bisogno di passare il primo argomento al motore regex. –