[R] append for .Rdata?

J Toll jctoll at gmail.com
Wed Oct 10 19:47:01 CEST 2012


On Tue, Oct 9, 2012 at 10:35 AM, Jessica Streicher
<j.streicher at micromata.de> wrote:
> Can i somehow append objects to an .Rdata file?
>
> I didn't see an option for it in the save() method.
>
> dump() won't work since i have s4 objects in there.


I'm not sure I completely understand the issues you're trying to work
around, but I have two ideas for you.  One is a simple pseudo-append
function that loads the entire contents, adds the object, and saves
the result.  There are obviously memory issues with this strategy.

appendRData <- function(robj, filename) {

  tmpEnv <- new.env()

  savedObjects <- load(filename, envir = tmpEnv)

  # quick check for name collisions
  stopifnot(!(deparse(substitute(robj)) %in% savedObjects))

  save(list = c(savedObjects, deparse(substitute(robj))),
      file = filename,
      envir = tmpEnv)
}

A second possibility is to convert your RData files to a lazy-load
database as described by Simon Urbanek here:

http://stackoverflow.com/questions/8700619/get-specific-object-from-rdata-file
http://stackoverflow.com/questions/6550510/examining-contents-of-rdata-file-by-attaching-into-a-new-environment-possible

HTH


James




More information about the R-help mailing list