[R] Formatting a path for unix with gsub

William Dunlap wdunlap at tibco.com
Mon Dec 17 22:03:59 CET 2012


Use either
  > gsub(" ", "\\\\ ", "one two  three") # double space after 'two'
  [1] "one\\ two\\ \\ three"
or
  > gsub(" ", "\\ ", "one two  three", fixed=TRUE)
  [1] "one\\ two\\ \\ three"

When 'fixed' is not TRUE then a backslash gives a special meaning to
the next character in the replacement argument.
E.g., "\\1" means to put the match corresponding to the first parenthesized
subpattern into the replacement and, when perl=TRUE "\\U" means to
capitalize the alphabetic characters in \\<digit> replacements.  E.g.,
  > gsub("([[:alpha:]])([[:alpha:]])", "\\2\\1", "one two three")
  [1] "noe wto htere"
  > gsub("( [[:alpha:]])", "\\U\\1", "one two  three", perl=TRUE)
  [1] "one Two  Three"

Hence you need to have 2 backslashes in the replacement to put a backslash
in the ouput when fixed is FALSE.

You need to type 2 backslashes to put 1 backslash in a string, hence you need
to type 4 backslashes to have 2 in the replacement string.

Bill Dunlap
Spotfire, TIBCO Software
wdunlap tibco.com


> -----Original Message-----
> From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On Behalf
> Of Nathan Skene
> Sent: Monday, December 17, 2012 9:45 AM
> To: r-help at r-project.org
> Subject: [R] Formatting a path for unix with gsub
> 
> I have a path:
> 
> path = "/nfs/users/nfs_n/ns9/
> Phenotype Analysis/Results/Run_AmplRatio_neg
> BinaryAll trained without akapn+tnik.csv"
> 
> I wish to replace the spaces with "\ " so that it can be read by a system
> call to unix.
> 
> Using gsub I try:
> 
> > gsub(" ","\\ ",path)
> [1] "/nfs/users/nfs_n/ns9/Phenotype Analysis/Results/Run_AmplRatio_neg
> BinaryAll trained without akapn+tnik.csv"
> 
> Various variations on this result in either adding no backslashes, or two at
> once. How do I just get one backslash inserted?
> 
> Thanks
> 
> 	[[alternative HTML version deleted]]
> 
> ______________________________________________
> 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.




More information about the R-help mailing list