2013-02-14 33 views
18

Pracuję w R i mając problemy z ucieczką przed ukośnikiem. Używam biblioteki stringr.Jak uciec przed ukośnikiem w R?

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

Chciałbym zrobić str = str_replace_all(str, "\", "")

Więc próbowałem str = str_replace_all(str, "\\", "") ale to nie będzie działać.

Co należy zrobić?

+67

W razie wątpliwości dodawaj ukośniki, dopóki nie zadziała. – joran

+0

Występuje błąd. Ale znalazłem rozwiązanie z gsub ("([\\])", "", str) –

+1

@joran Ten komentarz ma więcej upvotes niż wszystko inne w wątku łącznie. Prawdziwe słowa mądrości. – Dason

Odpowiedz

16

znalazłem rozwiązanie, które działa

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

Zgodnie z moim komentarzem, użycie '' \\\\ "' jako wzorca również zadziała (z 'gsub' lub' str_replace_all'. – joran

+2

'gsub (" \\ "," ", str, naprawiono = TRUE) też by działało, musisz tylko pamiętać, że w R, '\\' jest tylko jedną postacią Spróbuj tego: 'x <-" mój \\ łańcuch \\ g \\ z \\ ukośnikiem "; x); cat (x) '. – A5C1D2H2I1M1N2O1R2T1

+0

W RE, \\ dopasuj \ .Jeśli potrzebujesz scape co \ do R rozumiem to jako \, musisz użyć' gsub ("\\\\", "", str) ' – Rcoster

8

Używaj Hmisc::escapeRegex i Hmisc::escapeBS który automatycznie ucieka backslashy regex i innych znaków specjalnych.

+0

Nawet 'Hmisc' nie zezwoli ci całkowicie na' escapeBS', ponieważ ostatecznie BS jest nieuniknione (szczególnie w programowaniu i 'rep ('szczególnie', 2)' w R). – geneorama