On 6/18/2007 12:11 PM, (Ted Harding) wrote: > On 18-Jun-07 14:28:35, Gabor Grothendieck wrote: >> This loads all the functions into an anonymous environment defined >> by local and then exports f to the global environment. >> >> f <- local({ >> source("/a.R", local = TRUE) >> environment(f) <- .GlobalEnv >> f >> }) > > That looks neat! Two questions: > > 1. Would something similar work for extracting selected functions > from a library (assuming that you know about interdependencies)? > > E.g. something like > > f <- local({ > library(f.etc.lib) > environment(f) <- .GlobalEnv > f > })
The exact syntax you list there won't work, but in any case, changing the environment of a function in a package is a bad idea -- it may need to reference things from the namespace of the package. > > 2. Having done what you describe to extract just f from a source > file, can one then "delete" the local environment used to load > the source? I think what I'm basically asking is whether the > exporting is done "by value" (local environment deletion OK) > or "by reference" (deletion would destroy the exported object). Gabor answered this: it will go away automatically. Duncan Murdoch ______________________________________________ R-help@stat.math.ethz.ch 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.