[R] relative referencing for filenames &etc

Gabor Grothendieck ggrothendieck at gmail.com
Tue Feb 28 19:36:46 CET 2006


I think the idea of the prior respondents was that R_DATADIR
would be set outside R and the application and just fetched from
an environment variable inside the application so that the application
is independent of it.

If, in fact, your R code knows the data directory anyways, you could
just do

  datadir <- "J:/foo/bar"
  file.path(datadir, "rawdata.xls")



On 2/28/06, Greg Tarpinian <sasprog474474 at yahoo.com> wrote:
> Thank you both for your helpful suggestions.  My ignorance of R prevents me
> from understanding exactly how to
>
>   "...run from a shortcut, appending DATADIR=J:/foo/bar to the
>    command line"
>
> but I assume that Appendix C of "S Programming" will help me there -- I was
> unaware of this material when I posted my question.  I was able to success-
> fully use the following:
>
>   > Sys.putenv("R_DATADIR"="Z:/.../raw")
>   > Sys.getenv("R_DATADIR")
>      R_DATADIR
>   "Z:/.../raw"
>   > file.path(Sys.getenv("R_DATADIR"), "RAWDATA.xls")
>   [1] "Z:/.../raw/RAWDATA.xls"
>
> Using this type of code, I should be able to "point" R at data and output
> directories.  In my industry, programmers are required to save their SAS
> log files for auditing purposes, and knowing that R has similar capabilities
> is very helpful.
>
> Again, thanks for your help.  Kind regards,
>
>
>     Greg
>
>
>
>
> --- Prof Brian Ripley <ripley at stats.ox.ac.uk> wrote:
>
> > On Tue, 28 Feb 2006, Uwe Ligges wrote:
> >
> > >
> > >
> > > On Mon, 27 Feb 2006, Greg Tarpinian wrote:
> > >
> > >> BACKGROUND:
> > >> I use SAS on a daily basis and one of its most powerful features in a
> > >> production environment is the use of LIBNAME and FILEREF statements, e.g.:
> > >>
> > >>
> > >> PROC PRINTTO LOG = "&LOGDIR.\data processing.log" NEW;
> > >> RUN;
> > >> PROC IMPORT
> > >>    DATAFILE= "&DATADIR.\blah.xls"
> > >>    OUT = TEMP
> > >>    DBMS = EXCEL REPLACE;
> > >>     SHEET = "Sheet1";
> > >>     GETNAMES = YES;
> > >> RUN;
> > >>
> > >>
> > >> Properly setting up SAS Shortcuts in the WinXP environment, or (say)
> > >> the UNIX equivalent of batch files in the UNIX environment will cause
> > >> SAS to autoexecute (say) an INIT.SAS file that automatically assigns
> > >> the LOGDIR and DATADIR macro variables used above.  This is extremely
> > >> convenient because it makes the SAS code more portable from project to
> > >> project.
> > >>
> > >>
> > >> MY QUESTION:
> > >> Is it possible to use this kind of relative file and directory referencing
> > >> from within R?
> > >
> > > Perhaps you are looking for ?setwd
> >
> > Another idea is to use environment variables.  So if in an R function I
> > have
> >
> >      xls_file <- file.path(Sys.getenv("DATADIR"), "blah.xls")
> >
> > I can R run from a shortcut, appending DATADIR=J:/foo/bar to the command
> > line.
> >
> > --
> > Brian D. Ripley,                  ripley at stats.ox.ac.uk
> > Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
> > University of Oxford,             Tel:  +44 1865 272861 (self)
> > 1 South Parks Road,                     +44 1865 272866 (PA)
> > Oxford OX1 3TG, UK                Fax:  +44 1865 272595
> >
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
>




More information about the R-help mailing list