Re: [R] Path to R script

2010-05-13 Thread Sharpie


Johannes W. Dietrich wrote:
> 
> 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.
> 

I *strongly* suggest you consider packages if you are sharing collections of
R functions and scripts with other people.  Compared to other programming
languages I have used, R makes it dead simple to create packages.  All you
really need to get started is:

  ?package.skeleton()

That command creates a set of folders whose structure is pretty self
explanatory:

  package.skeleton( 'myPackage' )

Creates the beginnings of a package structure:

  myPackage/

 R/  => Files containing your custom R functions go in here

 data/  => Data sets go in here

 man/  => For documentation files

 inst/   => Everything else such as scripts and config files

The "Writing R Extensions Manual" can help you fill in the rest of the
blanks.

The bottom line is that creating a package cost a minimal investment of
extra time and pays back huge dividends if the collection of scripts and
data files you are sharing gets complex or you people ask you to document
the software that they are starting to depend on.

-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-tp2196648p2216184.html
Sent from the R help mailing list archive at Nabble.com.

__
R-help@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.


Re: [R] Path to R script

2010-05-13 Thread Shi, Tao
In this case, deploy them as a R package is the way to go.




- Original Message 
> From: Johannes W. Dietrich 
> To: "Shi, Tao" ; johannes.dietr...@rub.de
> Cc: r-help@r-project.org
> Sent: Thu, May 13, 2010 9:14:24 AM
> Subject: Re: [R] Path to R script
> 
> At 13:19 Uhr -0700 12.05.2010, Shi, Tao wrote:
> 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?

Thank you, but this would be an easy 
> solution. The problem is that the R script and data tables are stored on the 
> individual computers (and therefore on different places depending of the 
> users' 
> preferences and of course the operating system).

If it were possible to 
> locate the files relative to the script we could write modular scripts that 
> would run on any machine without modifications.

Thanks again,

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.dietr...@medical-cybernetics.de"; 
> href="mailto:j.w.dietr...@medical-cybernetics.de";>j.w.dietr...@medical-cybernetics.de"
-- 
> WWW: http://medical-cybernetics.de
-- WWW: http://www.bergmannsheil.de
-- 
> -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

__
R-help@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.


Re: [R] Path to R script

2010-05-13 Thread Johannes W. Dietrich

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.dietr...@medical-cybernetics.de"
-- WWW: http://medical-cybernetics.de
-- WWW: http://www.bergmannsheil.de
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

__
R-help@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.


Re: [R] Path to R script

2010-05-13 Thread Johannes W. Dietrich

At 13:19 Uhr -0700 12.05.2010, Shi, Tao wrote:
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?


Thank you, but this would be an easy solution. The problem is that 
the R script and data tables are stored on the individual computers 
(and therefore on different places depending of the users' 
preferences and of course the operating system).


If it were possible to locate the files relative to the script we 
could write modular scripts that would run on any machine without 
modifications.


Thanks again,

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.dietr...@medical-cybernetics.de"
-- WWW: http://medical-cybernetics.de
-- WWW: http://www.bergmannsheil.de
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

__
R-help@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.


Re: [R] Path to R script

2010-05-12 Thread Gabor Grothendieck
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
 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.dietr...@medical-cybernetics.de"
> -- WWW: http://medical-cybernetics.de
> -- WWW: http://www.bergmannsheil.de
> -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
>
> __
> R-help@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@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.


Re: [R] Path to R script

2010-05-12 Thread David Scott

David Scott wrote:

Sharpie wrote:

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


I also was about to suggest putting the code in a package because then 
you have system.file available, which I presume works across platforms:


 > system.file("RunTests.R",package="DistributionUtils")
[1] "/usr/local/david/R/DistributionUtils"
 > system.file("unitTests/runTests.R",package="DistributionUtils")
[1] "/usr/local/david/R/DistributionUtils/unitTests/runTests.R"



Sorry, I copied that incorrectly. Should be:

> system.file(package="DistributionUtils")
[1] "/usr/local/david/R/DistributionUtils"
> system.file("unitTests/runTests.R",package="DistributionUtils")
[1] "/usr/local/david/R/DistributionUtils/unitTests/runTests.R"

David Scott
_
David Scott Department of Statistics
The University of Auckland, PB 92019
Auckland 1142,NEW ZEALAND
Phone: +64 9 923 5055, or +64 9 373 7599 ext 85055
Email:  d.sc...@auckland.ac.nz,  Fax: +64 9 373 7018

Director of Consulting, Department of Statistics

__
R-help@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.


Re: [R] Path to R script

2010-05-12 Thread David Scott

Sharpie wrote:


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


I also was about to suggest putting the code in a package because then 
you have system.file available, which I presume works across platforms:


> system.file("RunTests.R",package="DistributionUtils")
[1] "/usr/local/david/R/DistributionUtils"
> system.file("unitTests/runTests.R",package="DistributionUtils")
[1] "/usr/local/david/R/DistributionUtils/unitTests/runTests.R"


David Scott


_
David Scott Department of Statistics
The University of Auckland, PB 92019
Auckland 1142,NEW ZEALAND
Phone: +64 9 923 5055, or +64 9 373 7599 ext 85055
Email:  d.sc...@auckland.ac.nz,  Fax: +64 9 373 7018

Director of Consulting, Department of Statistics

__
R-help@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.


Re: [R] Path to R script

2010-05-12 Thread Sharpie


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.

__
R-help@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.


Re: [R] Path to R script

2010-05-12 Thread Shi, Tao
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 
> To: r-help@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.dietr...@medical-cybernetics.de"; 
> href="mailto:j.w.dietr...@medical-cybernetics.de";>j.w.dietr...@medical-cybernetics.de"
-- 
> WWW: http://medical-cybernetics.de
-- WWW: http://www.bergmannsheil.de
-- 
> -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
> --

__

> ymailto="mailto:R-help@r-project.org"; 
> href="mailto:R-help@r-project.org";>R-help@r-project.org mailing list

> href="https://stat.ethz.ch/mailman/listinfo/r-help"; target=_blank 
> >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@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.


Re: [R] Path to R script

2010-05-12 Thread Duncan Murdoch

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

__
R-help@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.


Re: [R] Path to R script

2010-05-12 Thread Erik Iverson

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.


__
R-help@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] Path to R script

2010-05-12 Thread Johannes W. Dietrich
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.dietr...@medical-cybernetics.de"
-- WWW: http://medical-cybernetics.de
-- WWW: http://www.bergmannsheil.de
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

__
R-help@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.