[R] Path to R script
David Scott
d.scott at auckland.ac.nz
Thu May 13 01:18:59 CEST 2010
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.scott at auckland.ac.nz, Fax: +64 9 373 7018
Director of Consulting, Department of Statistics
More information about the R-help
mailing list