There is certainly a trivial solution for my question, but I can't find the answer in the documentation. I need a platform independent method to obtain the file path of the current R script. My working group uses R on several machines with different operating systems including Mac OS X, Windows and Linux, and for obvious reasons the file hierarchies are very different. Therefore, it would be useful to be able to address data files and external procedures relative to the path of the script. Thank you for any suggestion, J. W. D. -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- Dr. Johannes W. Dietrich, M.D. -- Laboratory XU 44, Endocrine Research -- Medical Hospital I, Bergmannsheil University Hospitals -- Ruhr University of Bochum -- Buerkle-de-la-Camp-Platz 1, D-44789 Bochum, NRW, Germany -- Phone: +49:234:302-6400, Fax: +49:234:302-6403 -- eMail: "j.w.dietrich at medical-cybernetics.de" -- WWW: http://medical-cybernetics.de -- WWW: http://www.bergmannsheil.de -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
While not a direct answer to your question, do ?getwd and ?setwd help at all? Johannes W. Dietrich wrote:> There is certainly a trivial solution for my question, but I can't find > the answer in the documentation. > > I need a platform independent method to obtain the file path of the > current R script. > > My working group uses R on several machines with different operating > systems including Mac OS X, Windows and Linux, and for obvious reasons > the file hierarchies are very different. Therefore, it would be useful > to be able to address data files and external procedures relative to the > path of the script. > > Thank you for any suggestion, > > J. W. D.
On 12/05/2010 3:31 PM, Johannes W. Dietrich wrote:> There is certainly a trivial solution for my question, but I can't > find the answer in the documentation. > > I need a platform independent method to obtain the file path of the > current R script. > > My working group uses R on several machines with different operating > systems including Mac OS X, Windows and Linux, and for obvious > reasons the file hierarchies are very different. Therefore, it would > be useful to be able to address data files and external procedures > relative to the path of the script.I'm not sure there's a trivial solution, because there are so many different ways to run a script. How are you running it? Are you using the same method on all platforms? Duncan Murdoch
Don't quite understand your question, but it looks like a more IT issue to me. I guess you store your R scripts in a central location (e.g. a server) and everybody call them from their own workstation, right? Or you can always bundle your R scripts into a package and distribute it around your group. ...Tao ----- Original Message ----> From: Johannes W. Dietrich <j.w.dietrich at medizinische-kybernetik.de> > To: r-help at r-project.org > Sent: Wed, May 12, 2010 12:31:19 PM > Subject: [R] Path to R script > > There is certainly a trivial solution for my question, but I can't find the > answer in the documentation.I need a platform independent method to> obtain the file path of the current R script.My working group uses R on> several machines with different operating systems including Mac OS X, Windows > and Linux, and for obvious reasons the file hierarchies are very different. > Therefore, it would be useful to be able to address data files and external > procedures relative to the path of the script.Thank you for any> suggestion,J. W. D. -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --> -- -- -- -- -- -- -- -- -- ---- Dr. Johannes W. Dietrich, M.D. --> Laboratory XU 44, Endocrine Research-- Medical Hospital I, Bergmannsheil> University Hospitals-- Ruhr University of Bochum --> Buerkle-de-la-Camp-Platz 1, D-44789 Bochum, NRW, Germany-- Phone:> +49:234:302-6400, Fax: +49:234:302-6403-- eMail: "> ymailto="mailto:j.w.dietrich at medical-cybernetics.de" > href="mailto:j.w.dietrich at medical-cybernetics.de">j.w.dietrich at medical-cybernetics.de"--> WWW: http://medical-cybernetics.de-- WWW: http://www.bergmannsheil.de --> -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- > --______________________________________________> ymailto="mailto:R-help at r-project.org" > href="mailto:R-help at r-project.org">R-help at r-project.org mailing list> href="https://stat.ethz.ch/mailman/listinfo/r-help" target=_blank > >https://stat.ethz.ch/mailman/listinfo/r-helpPLEASE do read the posting> guide http://www.R-project.org/posting-guide.htmland provide commented,> minimal, self-contained, reproducible code.
Johannes W. Dietrich wrote:> > There is certainly a trivial solution for my question, but I can't > find the answer in the documentation. > > I need a platform independent method to obtain the file path of the > current R script. > > My working group uses R on several machines with different operating > systems including Mac OS X, Windows and Linux, and for obvious > reasons the file hierarchies are very different. Therefore, it would > be useful to be able to address data files and external procedures > relative to the path of the script. > > Thank you for any suggestion, > > J. W. D. > -- >The best recipie I have for dealing with this situation is: 1. Place R scripts in a package (a very good idea anyway if you are distributing code to others). 2. Place a configuration file in the package that contains info such as paths to data directories. 3. Customize the configuration file after installing the package (if necessary). Then your script accesses the configuration file, which is in a known fixed location, and uses the information inside to find other files that may be in unknown and changing locations. You could also place the configuration file in a location such as: ~/.MyPackageConf Since: path.expand( '~/' ) Has a pretty predictable behavior across platforms. This would save it from being overwritten every time you updated the package. Hope this helps! -Charlie ----- Charlie Sharpsteen Undergraduate-- Environmental Resources Engineering Humboldt State University -- View this message in context: http://r.789695.n4.nabble.com/Path-to-R-script-tp2196648p2196929.html Sent from the R help mailing list archive at Nabble.com.
If you are running the file via source("myfile.R") then just put this in the file: this.dir <- dirname(sys.frame(1)$ofile) This is a bit fragile since changes to the internals of source could break it but it does currently work. On Wed, May 12, 2010 at 3:31 PM, Johannes W. Dietrich <j.w.dietrich at medizinische-kybernetik.de> wrote:> There is certainly a trivial solution for my question, but I can't find the > answer in the documentation. > > I need a platform independent method to obtain the file path of the current > R script. > > My working group uses R on several machines with different operating systems > including Mac OS X, Windows and Linux, and for obvious reasons the file > hierarchies are very different. Therefore, it would be useful to be able to > address data files and external procedures relative to the path of the > script. > > Thank you for any suggestion, > > J. W. D. > -- > -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- > -- Dr. Johannes W. Dietrich, M.D. > -- Laboratory XU 44, Endocrine Research > -- Medical Hospital I, Bergmannsheil University Hospitals > -- Ruhr University of Bochum > -- Buerkle-de-la-Camp-Platz 1, D-44789 Bochum, NRW, Germany > -- Phone: +49:234:302-6400, Fax: +49:234:302-6403 > -- eMail: "j.w.dietrich at medical-cybernetics.de" > -- WWW: http://medical-cybernetics.de > -- WWW: http://www.bergmannsheil.de > -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- > > ______________________________________________ > 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. >
At 19:29 Uhr -0400 12.05.2010, Gabor Grothendieck wrote:>If you are running the file via source("myfile.R") then just put this >in the file: > >this.dir <- dirname(sys.frame(1)$ofile) > >This is a bit fragile since changes to the internals of source could >break it but it does currently work.Great, this is the solution. It works if the script has been saved before running. Thank you, J. W. D. -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- Dr. Johannes W. Dietrich, M.D. -- Laboratory XU 44, Endocrine Research -- Medical Hospital I, Bergmannsheil University Hospitals -- Ruhr University of Bochum -- Buerkle-de-la-Camp-Platz 1, D-44789 Bochum, NRW, Germany -- Phone: +49:234:302-6400, Fax: +49:234:302-6403 -- eMail: "j.w.dietrich at medical-cybernetics.de" -- WWW: http://medical-cybernetics.de -- WWW: http://www.bergmannsheil.de -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --