[R] clear R-objects inside a function?
Uwe Ligges
ligges at statistik.uni-dortmund.de
Tue Apr 10 17:14:22 CEST 2001
Douglas Bates wrote:
>
> Paul E Johnson <pauljohn at ukans.edu> writes:
>
> > Using RedHat Linux 7.0, R-1.2.2, R-hdf5-1.2 library,
> >
> > I want to load a dataset, do some stuff with it, then erase its objects,
> > get an other, repeat. My friend wrote a function which tried to clear
> > away all the objects. At the end, it uses rm() to remove objects. This
> > is the same way we do it interactively, from the R prompt:
> >
> > testLoadSeveralHDF <- function(numFiles) {
> > for (i in 0:(numFiles-1)) {
> > filename <- paste("trial",i,".hdf",sep="")
> > print(filename)
> > hdf5load(filename)
> > rm(list = ls(pat="g*"))
> > }
> > }
> >
> > However, after that program runs, the g* objects are not erased, but
> > typing "rm(list=ls(pat="g*")) from the command line does erase them. I
> > realized there's something about the environment that I need to tell the
> > function, I just don't know what?
>
> Add envir = .GlobalEnv to both the ls and the rm calls. That is
>
> rm(list = ls(pat = "g*", envir = .GlobalEnv), envir = .GlobalEnv)
This will remove not only those object, beginning with g*, I think.
Using pat="g" will be better, if you don't want to remove all (except
the ".*" ones) of your objects.
Uwe Ligges
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !) To: r-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
More information about the R-help
mailing list