[R] Replacing backslashes with slashes

Peter Dalgaard p.dalgaard at biostat.ku.dk
Wed Jan 4 19:19:12 CET 2006

yvonnick noel <yvonnick.noel at uhb.fr> writes:

> > You need one of
> >
> > gsub("\\\\","/","c:\\My Documents\\data.dat")
> > gsub("\\","/","c:\\My Documents\\data.dat", fixed = TRUE)
> > chartr("\\", "/", "c:\\My Documents\\data.dat")
> The string I get is an ASCII string in a web page, through the use of 
> an <INPUT
> type="file" ... > tag (with a "browse" button). This string is caught as is by
> R through the Rpad interface (using tcltk as a mini local webserver).
> So it is not manually input by the user. As it appears in a textfield on a web
> page, I could of course ask the user to change it manually and double the
> antislashes. But this is not user-friendly.

But what does R see? I.e., what is in the string that gets passed to
R, and how does it get passed?

You sound confused (many are) about character escapes: Notice that
"\\" is a string with *one* character in it, namely the backslash.
"\"" has no backslash inside; it contains one double-quote character,
etc. The first backslash is just for representation - it is used to
print or specify a string with a quote, a newline, a bell character,
or the backslash escape character itself.

In general, if you read a string from a Tcl/Tk form or text widget or
whatever using the tcltk package, everything should be OK. However, if
the string is somehow being parsed by R, the *interface* has a problem
and needs to do some escaping first.

   O__  ---- Peter Dalgaard             Øster Farimagsgade 5, Entr.B
  c/ /'_ --- Dept. of Biostatistics     PO Box 2099, 1014 Cph. K
 (*) \(*) -- University of Copenhagen   Denmark          Ph:  (+45) 35327918
~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk)                  FAX: (+45) 35327907

More information about the R-help mailing list