[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