Search code examples
rescapingfilepath

Efficiently convert backslash to forward slash in R


I am looking for an efficient way to convert back slash to forward slash in R. Sometime I copy the link of the directory in Windows and I get something like this:

C:\Users\jd\Documents\folder\file.txt

How can I quickly change this to C:/Users/jd/Documents/folder/file.txt ? I cannot even read the above expression as character. It throws an error

"\u used without hex digits in character string starting ""C:\u".

I know TAB function in R helps to find the location fast, but was just wondering if there was any other work around. I could change the working directory to the location of folder also. I was just playing around and tried to convert backslash to forward slash and was not straight forward so asked this just because of curiosity.


Solution

  • In R, you've to escape the \ with \\ So, your path should be:

    x <- "C:\\Users\\jd\\Documents\\folder\\file.txt"
    

    To get that, you can do:

    x <- readline()
    

    then, at the prompt, paste your unmodified path (CTRL+V then ENTER)

    Finally, to change \\ to / everywhere, you could use gsub, once again by escaping the \, but twice, as follows:

    gsub("\\\\", "/", x)
    # [1] "C:/Users/jd/Documents/folder/file.txt"