[R] relative file path
William Dunlap
wdunlap at tibco.com
Mon Feb 22 23:07:02 CET 2010
If you restructure your code as a bunch
of functions calling functions instead of
scripts sourcing scripts then the problem
would largely go away. Put the functions
into a package with a namespace and it
becomes more reliable.
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 Duncan Murdoch
> Sent: Monday, February 22, 2010 1:49 PM
> To: Rob Forler
> Cc: r-help at r-project.org
> Subject: Re: [R] relative file path
>
> On 22/02/2010 3:44 PM, Rob Forler wrote:
> > Hello,
> >
> > Is there a way to find where a script is located within a
> script? getwd()
> > doesn't do what I want because it depends on where R was
> called from. I want
> > something like source("randomFile") and within randomFile there is a
> > function called whereAmI() which returns c:\blah\blah2\randomFile.R
> >
> > In perl there is a library called FindBin and $FindBin::Bin has the
> > directory of the file that called $FindBin::Bin.
>
> Some dirty code to do that would be to look back through the
> stack for
> the local variables in the source() call, and expand the
> filename from
> there. That's probably what Hadley's code was doing in the
> thread that
> Hrishi mentioned.
>
> Here's a version:
>
>
> whereAmI <- function() {
> filename <- sys.frames()[[1]]$ofile
> normalizePath(filename)
> }
>
>
> This works when a call to it is in a file being sourced; if
> there were
> nested source() calls, then something more elaborate like
> Hadley's code
> would be needed. And this might break tomorrow: you're not
> supposed to
> look at local variables like ofile.
>
> Duncan Murdoch
>
> ______________________________________________
> 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