[R] Suimmary of answers : Possible (ab)use of lexical scoping in R ?
Uwe Ligges
ligges at statistik.uni-dortmund.de
Sun May 22 12:58:20 CEST 2005
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
>
More information about the R-help
mailing list