How to escape backslashes in R string

Fnzh Xx picture Fnzh Xx · Aug 4, 2012 · Viewed 46.5k times · Source

I'm writing strings which contain backslashes (\) to a file:

x1 = "\\str"

x2 = "\\\str"
# Error: '\s' is an unrecognized escape in character string starting "\\\s"

x2="\\\\str"
write(file = 'test', c(x1, x2))

When I open the file named test, I see this:

\str
\\str

If I want to get a string containing 5 backslashes, should I write 10 backslashes, like this?

x = "\\\\\\\\\\str" 

Answer

aioobe picture aioobe · Aug 4, 2012

[...] If I want to get a string containing 5 \ ,should i write 10 \ [...]

Yes, you should. To write a single \ in a string, you write it as "\\".

This is because the \ is a special character, reserved to escape the character that follows it. (Perhaps you recognize \n as newline.) It's also useful if you want to write a string containing a single ". You write it as "\"".

The reason why \\\str is invalid, is because it's interpreted as \\ (which corresponds to a single \) followed by \s, which is not valid, since "escaped s" has no meaning.