Re: [R] Suimmary of answers : Possible (ab)use of lexical scoping in R ?

From: Uwe Ligges <>
Date: Sun 22 May 2005 - 20:58:20 EST

Emmanuel Charpentier wrote:
> Dear List,
> I asked how to create a set of functions (and maybe variables) shared by
> another set of functions but hidden from the "main" environment.
> Duncan Murdoch and Brian Ripley advised to use the package creation
> system. Brian ripley (and someone else, offlist) also pointed me to the
> local() function, which creates new environments with specified
> contents, and which I was unaware of (btw, when this function has been
> introduced ? It is mentioned neither in MASS 4th edition index, nor in
> 'S Programming' index).

I think everybody remembers that local() has been introduced in R-0.65.0 (those who do not remember can simply look into the file OONEWS).

I like the two books as well, but I don't think they can be complete in the sense of describing *all* R functions.

I'd like to recommend the "package way". Working with envrionments and local() does not seem to be the R way - and it is very confusing to read code that refers to a couple of different environments ...

Uwe Ligges

> After re-reading the available docs (which I may have misunderstood...),
> I come to the following conclusions :
> - The package creation is the most elegant and portable form. Unless I
> am mistaken, it entails however some administrative overhead (creation
> of a directory structure, R CMD installation*, etc ...).
> - Using local() is a (semi-) kludge, easy to use in one-file disposable
> works. It might be more error-prone than package creation.
> - It has been pointed to me that manipulating environment (via local()
> or otherwise), in a very Abelson-&-Sussmann-like way, allowed to create
> OO-oriented code, somewhat different from S3 and S4 class mechanisms.
> Since repeated experiences have proved to my satisfaction that I am
> piss-poor at top-down design, I will probably use the environment
> manipulation for initial head-scratching phase, switching to package
> creation at the formalization phase.
> A big "thank you" to all respondents, whose answers have been *very* useful.
> Emmanuel Charpentier
> mailing list PLEASE do read the posting guide! Received on Sun May 22 21:03:13 2005

This archive was generated by hypermail 2.1.8 : Fri 03 Mar 2006 - 03:31:59 EST