On Mon, 7 Feb 2005 04:39:40 +0000 (UTC), Gabor Grothendieck <[EMAIL PROTECTED]> wrote :
>Adrian Baddeley <adrian <at> maths.uwa.edu.au> writes: > >: I want to equip a data frame with an attribute >: which specifies how to plot some of the columns. >: >: Up to now we have been doing this by giving the data frame >: a `formula' attribute, that can be passed to plot.formula. >: >: For example >: dat <- data.frame(x=1:100,y=runif(100),z=100:1) >: attr(dat, "plotme") <- (z ~ x) >: ...... >: ...... >: if(missing(desiredformula)) >: desiredformula <- attr(dat, "plotme") >: plot(desiredformula, data=dat) >: >: We just got bitten by the fact that a formula object has a `.Environment' >: attribute, which may be huge, depending on the environment >: in which the formula was created. In the example above there is >: no upper limit on the size of the object 'dat' !!!! >: That is, environment(attr(dat, "plotme")) could be huge. > >Do you mean that if fo is the formula then ls(environment(fo)) >has many large components? I don't understand why that would >be a problem. It can be a problem when you save a workspace. For example, the .Rdata file produced by this session is tiny: > makef <- function() { + y ~ x + } > fo <- makef() > save.image() while the file produced by this session is around 8 megabytes: > makef <- function() { + z <- rnorm(1000000) + y ~ x + } > fo <- makef() > save.image() You might assume that since z is local to the makef() call, and never referenced by the formula, it wouldn't be saved: but you'd be wrong. >: It appears that we can't set the environment to NULL; >: should we set it to the Global environment e.g. using as.formula? > >It works for me (R 2.1.0 Windows): > >R> fo <- y~x >R> environment(fo) ><environment: R_GlobalEnv> >R> environment(fo) <- NULL >R> environment(fo) >NULL It works for me too, so I'm not sure what problem Adrian was having. 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