[R] how to save an R object selectively?

Rolf Turner r.turner at auckland.ac.nz
Thu Aug 7 23:17:29 CEST 2008


On 8/08/2008, at 8:39 AM, carol white wrote:

> Hi,
> How to save an R object for example a matrix or vector and not all  
> objects created in a session (which is usually performed by  
> save.image or q("yes"))?

Two approaches:

(1) Clean up your workspace so that it contains only the objects you  
really want,
before doing q("yes").  Use rm(whatever you don't need). This is  
probably a Good Idea
anyhow.  Focuses the mind wondrously.

I've written myself a little interactive clean-up function:

	clean <- function ()
	{
     		lll <- ls(pos = 1)
     		for (xxx in lll) {
         	pmpt <- paste("remove ", xxx, "? ", sep = "")
         	ans <- readline(pmpt)
         	if (ans == "y") remove(list = xxx, pos = 1)
     	}
     	invisible()
}

Then just type clean() and answer ``y'' for the objects that you want  
to get rid of.

(2) Save the object that you want to keep in a separate file.  E.g.:

	save(X,file="melvin")

Then, when you want to use the object X, in a new R session, you have to
either (a) load("melvin") or (b) attach("melvin").  Read the help on  
load()
and attach() to see the difference in effect if you are unfamiliar  
with these
functions.

You could also, instead of using save(), use dput:

	dput(X,"melvin")

Then you want ``X'' in a new R session you do

	X <- dget("melvin")

Note that the *name* ``X'' is not maintained by dput() --- only the  
``contents''
of X.  So unlike the usage of load() or attach() (applied to the  
results of save())
you need to *assign* the output of dget() to an object.  Which  
needn't necessarily
be called ``X''.  You could just as easily do

	clyde <- dget("melvin")

Then the ``contents'' of clyde will be the ``contents'' of what you  
used to call X.
Extra flexibility, more chance to confuse yourself! :-)

	cheers,

		Rolf

######################################################################
Attention:\ This e-mail message is privileged and confid...{{dropped:9}}



More information about the R-help mailing list