[R] Using Sub

William Dunlap wdunlap at tibco.com
Mon Jun 18 20:02:39 CEST 2012


The parser (the part of R that interprets text as R code) interprets things like
"\t" as the tab character and there is no way to avoid that.  However, when
the functions readLines(), scan(), and readline() handle input they do not assign any special
meanings to backslashes.  Hence, if you want to be able to copy and paste
entries from other Windows applications to R you can do it by using scan(), etc.
E.g.,
  > readline(prompt="File path? ")
  File path? C:\Documents and Settings\Bill Dunlap\My Documents\the data.csv
  [1] "C:\\Documents and Settings\\Bill Dunlap\\My Documents\\the data.csv"
  > gsub("\\\\", "/", .Last.value)
  [1] "C:/Documents and Settings/Bill Dunlap/My Documents/the data.csv"
It is not terribly convenient, but it is possible.
 
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 Jeff Newmiller
> Sent: Monday, June 18, 2012 10:29 AM
> To: Daniel Lopez; arun
> Cc: R help
> Subject: Re: [R] Using Sub
> 
> Please study how escapes work. The representation you see in the source code is not the
> same as what is actually stored in memory.
> 
> As to your problems with the clipboard, I recommend writing scripts that do not interact
> with the clipboard directly. Violating this rule puts an error-prone human in the loop for
> repeating the script, and will eventually lead to irreproducible results.
> 
> That said, using the clipboard to create the script itself is fine. I usually just edit Windows
> paths in scripts to have forward slashes or double backslashes, and I use relative paths
> liberally. You can also play with file.choose() or readLines("clipboard") to get source-
> compatible paths.
> ---------------------------------------------------------------------------
> Jeff Newmiller                        The     .....       .....  Go Live...
> DCN:<jdnewmil at dcn.davis.ca.us>        Basics: ##.#.       ##.#.  Live Go...
>                                       Live:   OO#.. Dead: OO#..  Playing
> Research Engineer (Solar/Batteries            O.O#.       #.O#.  with
> /Software/Embedded Controllers)               .OO#.       .OO#.  rocks...1k
> ---------------------------------------------------------------------------
> Sent from my phone. Please excuse my brevity.
> 
> "Lopez, Dan" <lopez235 at llnl.gov> wrote:
> 
> >Hi A.K.,
> >
> >That works but when I copy and paste from Window explorer it will have
> >a single backslashes and not double.  It works with double as what you
> >have in your example below but not with single as what I would end up
> >passing.
> >
> >Do you have any other suggestions or methods to accomplish this?
> >
> >Thanks.
> >Dan
> >
> >
> >-----Original Message-----
> >From: arun [mailto:smartpink111 at yahoo.com]
> >Sent: Monday, June 18, 2012 8:59 AM
> >To: Lopez, Dan
> >Cc: R help
> >Subject: Re: [R] Using Sub
> >
> >Hi,
> >
> >I guess you need something like this:
> >
> >> str1<-"G:\\Compensation Audits_Reports\\Step Audit\\Steps off
> >Step.accdb"
> >> gsub('\\\\','/',str1)
> >[1] "G:/Compensation Audits_Reports/Step Audit/Steps off Step.accdb"
> >
> >
> >A.K.
> >
> >
> >
> >
> >----- Original Message -----
> >From: "Lopez, Dan" <lopez235 at llnl.gov>
> >To: Duncan Murdoch <murdoch.duncan at gmail.com>
> >Cc: R help <r-help at r-project.org>
> >Sent: Monday, June 18, 2012 10:37 AM
> >Subject: Re: [R] Using Sub
> >
> >Hi Duncan,
> >
> >That's right but I want to be able to use this to replace back slashes
> >with front slashes when I copy and paste file paths. How can I make
> >this work so I don't get this error?
> >
> >Thanks.
> >Dan
> >
> >-----Original Message-----
> >From: Duncan Murdoch [mailto:murdoch.duncan at gmail.com]
> >Sent: Friday, June 15, 2012 12:04 AM
> >To: Lopez, Dan
> >Cc: R help
> >Subject: Re: [R] Using Sub
> >
> >On 12-06-14 6:23 PM, Lopez, Dan wrote:
> >> Hi,
> >>
> >> I have been trying to get the sub function to work but can't for the
> >life of me figure it out. I tried looking at ?sub but I think there is
> >something that I am just not understanding.
> >>
> >> Example failed attempts
> >>> sub("\\","/","G:\Compensation Audits_Reports\Step Audit\Steps off
> >>> Step.accdb")
> >> Error: '\C' is an unrecognized escape in character string starting
> >"G:\C"
> >
> >This isn't anything to do with sub(), it's the third string that's the
> >problem.  When you say "G:\Comp..." it thinks you've escaped the C, but
> >there's no such escape.
> >
> >Duncan Murdoch
> >
> >>
> >>> sub("\\","/","G:\Compensation Audits_Reports\Step Audit\Steps off
> >>> Step.accdb",fixed=TRUE)
> >> Error: '\C' is an unrecognized escape in character string starting
> >"G:\C"
> >>
> >>> sub("\\","/","G:\Compensation Audits_Reports\Step Audit\Steps off
> >>> Step.accdb",fixed=FALSE)
> >> Error: '\C' is an unrecognized escape in character string starting
> >> "G:\C")
> >>
> >>> sub("/","\","G:\Compensation Audits_Reports\Step Audit\Steps off
> >>> Step.accdb")
> >> Error: unexpected symbol in "sub("/","\","G"
> >>
> >> Thanks.
> >> Dan
> >>
> >> ______________________________________________
> >> 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.
> >
> >______________________________________________
> >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.
> >
> >______________________________________________
> >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.
> 
> ______________________________________________
> 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