How to convert backslash to slash?
On Wed, 24 Sep 2008, jim holtman wrote:
It probably depends on how you are prompting the user for input. Here is what happens with 'readline' and you will see that the string after input does have the backslashes escaped.
x <- readline("Input File: ")
Input File: c:\dir1\dir2\file.name
x
[1] "c:\\dir1\\dir2\\file.name"
gsub("\\\\", "/", x) # notice the double escape
[1] "c:/dir1/dir2/file.name"
Great! Thanks. By the way, it would be nice if R have a third way to quote a string and automatically escape the backslashes in memory. For instance: #not run now s<- `C:\Acer' print(s) [1] "C:\\Acer"
On Wed, Sep 24, 2008 at 8:53 AM, Shengqiao Li <shli at stat.wvu.edu> wrote:
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.
______________________________________________ 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.
-- Jim Holtman Cincinnati, OH +1 513 646 9390 What is the problem that you are trying to solve?