clear R-objects inside a function?
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 _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._