[R] backslash quirk in paste

Ben Tupper btupper at bigelow.org
Sat Dec 6 20:30:24 CET 2014


Hi,

When you call paste without assigning the value it returns to anything it runs through the print command.  So, while your string may contain escapes, using print will not present escapes as you are expecting them.  In this case you could wrap cat() around your paste command.  

> cat(paste(fname, '\\', lname), "\n")
John \ Smith 

See FAQ 7.37 

http://cran.r-project.org/doc/FAQ/R-FAQ.html#Why-does-backslash-behave-strangely-inside-strings_003f

Cheers,
Ben

> sessionInfo()
R version 3.1.0 (2014-04-10)
Platform: x86_64-apple-darwin13.1.0 (64-bit)

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
[1] tools_3.1.0


On Dec 6, 2014, at 2:00 PM, Prof J C Nash (U30A) <nashjc at uottawa.ca> wrote:

> This is NOT critical. It arose due to a fumble fingers when developing
> an R example, but slightly intriguing.
> 
> How could one build a string from substrings with a single backslash (\)
> as separator. Here's the reproducible example:
> 
> fname = "John"; lname = "Smith"
> paste(fname, lname)
> paste(fname, lname, sep=" / ")
> # BUT there's a glitch with backslash
> paste(fname, lname, sep=" \ ") # because of escaping character
> paste(fname, lname, sep=' \ ')
> paste(fname, lname, sep=' \\ ') # because of escaping character
> bslash <- "\\"
> print(bslash)
> paste(fname, lname, sep=bslash)
> 
> Possibly the answer is that R never allows a single backslash in its
> strings, but I can imagine possible cases where I might want to output
> such lines, for example, in documenting this.
> 
> Best, JN
> 
> ______________________________________________
> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> 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.

Ben Tupper
Bigelow Laboratory for Ocean Sciences
60 Bigelow Drive, P.O. Box 380
East Boothbay, Maine 04544
http://www.bigelow.org



More information about the R-help mailing list