2013-02-14 37 views
18

Sto lavorando in R e ho problemi a fuggire dal backslash. Sto usando la libreria stringr.Come evitare una barra rovesciata in R?

install.packages("stringr", repos='http://cran.us.r-project.org') 
library("stringr") 

vorrei fare str = str_replace_all(str, "\", "")

così ho provato str = str_replace_all(str, "\\", "") ma non funzionerà.

Cosa devo fare?

+67

In caso di dubbi, continua ad aggiungere barre finché non funziona. – joran

+0

Ho fatto un errore. Ma ho trovato la soluzione con gsub ("([\\])", "", str) –

+1

@joran Questo commento ha più upvotes di qualsiasi altra cosa nel thread combinato. Vere parole di saggezza. – Dason

risposta

16

ho trovato una soluzione che funziona

str = gsub("([\\])","", str) 
+14

Come per il mio commento, usando '" \\\\ "' come un modello funzionerà pure (con gsub' o 'str_replace_all'. – joran

+2

' gsub ("\\", "", str, fixed = TRUE) 'Potrebbe anche funzionare. Devi solo ricordare che in R,' \\ 'è solo un carattere. Prova quanto segue:' x <- "my \\ strin \\ g \\ con \\ slashes"; print (x); cat (x) '. – A5C1D2H2I1M1N2O1R2T1

+0

In RE, \\ match \. Come hai bisogno di scape ogni \ a R lo capisco come \, devi usare' gsub ("\\\\", "", str) ' – Rcoster

8

Usa Hmisc::escapeRegex e Hmisc::escapeBS che sfugge automaticamente backslash e altri caratteri speciali regex.

+0

Neanche 'Hmisc' ti lascerà completamente' escapeBS', perché in definitiva BS è ineludibile (specialmente in programmazione, e 'rep ('especially', 2)' in R). – geneorama

Problemi correlati