Home » Replace or remove backslashes in a string in R

Replace or remove backslashes in a string in R


Escape ’til infinity — removing or replacing backslashes in a string can be burdensome in any programming language, if you’re not familiar what regex library is below the hood. In this post, we’ll remove a backslash from a string in R.

Perhaps the most valuable resource of all
all credits to xckd

Using gsub, there’s two paradigms to choose from. The first is by selecting it via a regex pattern. Believe it or not, but you’ll have to provide four (!) backslashes. This is because all characters are first parsed by the R parser, before being sent to the command line — i.e. you have to escape the escape.

my_str <- 'I am a \ backslash'
my_str <- gsub(
  pattern = ('\\\\'), 
  replacement = '', 
  x = my_str

However, there’s a less confusing way. Instead of using regex patterns, you can simply match literal strings by using gsub‘s fixed parameter.

my_str <- gsub(
  pattern = ('\\'), 
  replacement = '', 
  x = my_str,
  fixed = T

You can also do it using stringr:

str_replace(my_str, fixed("\\"), "backslash")

Let me know in the comments below if you figured this out.

By the way, if you’re having trouble understanding some of the code and concepts, I can highly recommend “An Introduction to Statistical Learning: with Applications in R”, which is the must-have data science bible. If you simply need an introduction into R, and less into the Data Science part, I can absolutely recommend this book by Richard Cotton. Hope it helps!

Say thanks, ask questions or give feedback

Technologies get updated, syntax changes and honestly… I make mistakes too. If something is incorrect, incomplete or doesn’t work, let me know in the comments below and help thousands of visitors.

1 thought on “Replace or remove backslashes in a string in R”

  1. Thank you for the suggestions. It is still not working for me. I cannot convert a path with backslashes to a string in R. I get a message that either \ or \_ is an unrecognized escape character. I still have to replace \ with / by hand in R.
    Robert Cline

Leave a Reply

Your email address will not be published. Required fields are marked *