[R] How to convert backslash to slash?

Shengqiao Li shli at stat.wvu.edu
Wed Sep 24 14:53:22 CEST 2008

On Wed, 24 Sep 2008, Duncan Murdoch wrote:

> Shengqiao Li wrote:
>> On Tue, 23 Sep 2008, Duncan Murdoch wrote:
>>> On 23/09/2008 4:00 PM, Shengqiao Li wrote:
>>>> How to use sub, gsub, etc. to replace "\" in a string to "/"?
>>>> For example,convert "C:\foo\bar" to "C:/foo/bar".
>>> If those are R strings, there are no backslashes in the first one.  It has 
>>> a formfeed and a backspace in it.
>> I did notice that this string  was special. It's a legimate R string. If 
>> "f" and "b" are replaced by "d", it will not. 
> I didn't say it was not legitimate, I said that it contains no backslashes. 
> If you replace f or b with d, you do not have a legitimate string.
>> My purpose is to convert a Windows file path (eg. copied from Explorer 
>> location bar) to a R file path through some R function inside R terminal. 
>> The "File->Change dir..." takes a file path like "C:\Acer", but setwd 
>> function will fail. 
> That's not true.  If you enter a backslash in the string, setwd() works fine.
> Your problem is that you are confusing R source code with the strings that it 
> represents.  The R source code for the file path C:\Acer is "C:\\Acer".  The
> R source code "C:\foo\bar" contains no backslashes, it contains the 
> characters C, :, formfeed, o, o,  backspace, a, r.
> If you have the string C:\Acer in the Windows clipboard, then you can read it 
> from there using readClipboard().  (There are many other ways to read the 
> clipboard as well;
> using 'clipboard' as a filename generally works.) You can then pass it to 
> setwd(), and it will be fine.

Thank you for your reply. readClipboard is a partial solution to this 
case. More generally, if I want to wrtie a R program in which users are 
asked to input a file path. I want this program to be robust and tolerant, 
that is users can type in C:\Acer or C:/Acer.  What's the way to do this?

Shengqiao Li

> Duncan Murdoch
>> I guess there must be some ways in R to replace a backslash by slash, eg. 
>> C:\Acer -> C:/Acer. The first problem may be how to pass and save this kind 
>> of strings. encodeString does not work for this, it will just ignore "\".
>>   Shengqiao Li
>>> Duncan Murdoch
>> ______________________________________________
>> R-help at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide 
>> http://www.R-project.org/posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.

More information about the R-help mailing list