[Rd] R Startup configuration file

Barry Rowlingson b.rowlingson at lancaster.ac.uk
Fri Feb 12 09:50:26 CET 2010


On Wed, Feb 10, 2010 at 3:06 PM, Barry Rowlingson
<b.rowlingson at lancaster.ac.uk> wrote:

>  But I agree that writing a saveable options package is the first step
> - then making that a default in R is the second so people don't have
> to edit profiles and R packages and applications can expect an API for
> savable state.

 More thinking about this has turned it into a problem of being able
to serialize R objects to XML. The most reliable way I can find of
doing that is to use serialize, then rawToChar, and put a big old hex
string in the XML. Hardly the most user-friendly format, but then
users aren't supposed to edit XML anyway. I have also considered
having encoding types for objects, something like:

<object encoding="raw" name="foo">66f6e.....a7726</object>
<object encoding="numeric" name="bar">3.141</object>
<object encoding="numeric" size="2"
name="baz"><item>3.14</item><item>6.28</item></object>

at which point I remembered that R objects can also have attributes
which can be any other R objects too. At which point I realized life's
too short for this...

..and had a rethink. Lots of software these days has a configuration
directory, and runs all the scripts or configs within - think
/etc/cron.daily/ or /etc/init.d on a unix system. This has the
advantage that components of the system can manage their own startup
files there, and not worry about stomping on others. So you'd have a
.Rprofile.d/ folder with, say, a cran.R file that could be sourced by
anything that used CRAN, for example to set the default mirror. I'd
insist that each file in .Rprofile.d/ started with a "# do not edit
this file" warning...

 I'll think some more over coffee until I realise why this is another
of my dumb ideas...

Barry



More information about the R-devel mailing list