[Rd] Replace back slashes with forward slashes?

Simon Urbanek simon.urbanek at r-project.org
Wed Feb 29 19:24:34 CET 2012


On Feb 29, 2012, at 1:19 PM, Spencer Graves wrote:

> Hi, Simon:
> 
> On 2/29/2012 10:04 AM, Simon Urbanek wrote:
>> On Feb 29, 2012, at 12:37 PM, Spencer Graves wrote:
>> 
>>> Hello, All:
>>> 
>>> 
>>>      What can people tell me about converting back slashes to forward slashes in character strings?
>>> 
>>> 
>> That's it's trivially done with
>> 
>> gsub("\\", "/", x, fixed=TRUE)
>> 
>> Where x is the character string (and I suppose you are aware of it since you are using it below).
> 
>      It does not work for me.  Consider the following:
> 
> 
> > x <- 'c:\Users\'
> Error: '\U' used without hex digits in character string starting "c:\U"
> 

But that has nothing to do with strings - it is an user error since you are not creating a valid string in R (not that backslash needs to be escaped in R -- just like in C and many other languages). You probably meant to write

> x <- "c:\\users\\"
> cat(x,"\n")
c:\users\ 
> gsub("\\","/",x,fixed=TRUE)
[1] "c:/users/"

Cheers,
Simon



> 
>      This is one reason I needed to use "scan".  Even if I could get past this, consider the following:
> 
> 
> > x <- '\t'
> > gsub('\\', '/', x, fixed=TRUE)
> [1] "\t"
> 
> 
>      It seems far from trivial, which is why I wrote this function and am looking for a better one.
> 
> 
>      Thanks for the reply.
> 
> 
>      Spencer
>> 
>> The rest of this e-mail makes absolutely no sense to me -- what exactly are you taking about? What else do you want to achieve?
>> 
>> Cheers,
>> Simon
>> 
>> 
>> 
>> 
>> 
>> 
>>>      Several years ago, Prof. Ripley provided a solution, which I lost and have not been able to find.
>>> 
>>> 
>>>      Below please find a function to do this.  I do not find this very satisfactory, however, because it uses "scan" and therefore operates on an input not a character string.  Unless someone suggests something better, I plan to add this to the "sos" package and issue a new release very soon.  (The new release is needed, because the RSiteSearch capability has been modified in a way that breaks the current "findFn" core of "sos".)
>>> 
>>> 
>>>      Thanks,
>>>      Spencer
>>> 
>>> back2forwardslash<- function (nmax = 1, pattern = "\\", replacement = "/") {
>>>    x<- scan(what = character(), quote = pattern, nmax = nmax)
>>>    x.<- gsub(pattern, replacement, x, fixed = TRUE)
>>>    paste(x., collapse = " ")
>>> }
>>> 
>>> (x<- back2forwardslash())
>>> c:\Users\
>>> 
>>> # nmax must be one more than the number of embedded blanks
>>> (x3<- back2forwardslash(3))
>>> c:\u\a b\c d
>>> 
>>> 
>>> -- 
>>> Spencer Graves, PE, PhD
>>> President and Chief Technology Officer
>>> Structure Inspection and Monitoring, Inc.
>>> 751 Emerson Ct.
>>> San José, CA 95126
>>> ph:  408-655-4567
>>> web:  www.structuremonitoring.com
>>> 
>>> ______________________________________________
>>> R-devel at r-project.org mailing list
>>> https://stat.ethz.ch/mailman/listinfo/r-devel
>>> 
>>> 
>> ______________________________________________
>> R-devel at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-devel
>> 
> 
> 
> -- 
> Spencer Graves, PE, PhD
> President and Chief Technology Officer
> Structure Inspection and Monitoring, Inc.
> 751 Emerson Ct.
> San José, CA 95126
> ph:  408-655-4567
> web:  www.structuremonitoring.com
> 
> 



More information about the R-devel mailing list