Possible Duplicate:
how to save() with a particular variable name
I'm wondering what an easy way is to save an object in R, using a variable objectName
with the name of the object to be saved. I want this to easy save objects, with their name in the file name.
I tried to use get
, but I didn't manage to save the object with it's original object name.
Example:
If I have the object called "temp", which I want to save in the directory "dataDir". I put the name of the object in the variable "objectName".
Attempt 1:
objectName<-"temp"
save(get(objectName), file=paste(dataDir, objectName, ".RData", sep=""))
load(paste(dataDir, objectName, ".RData", sep=""))
This didn't work, because R tries to save an object called get(objectName)
, instead of the result of this call. So I tried the following:
Attempt 2:
objectName<-"temp"
object<-get(objectName)
save(object, file=paste(dataDir, objectName, ".RData", sep=""))
load(paste(dataDir, objectName, ".RData", sep=""))
This obviously didn't work, because R saves the object with name "object", and not with name "temp". After loading I have a copy of "object", instead of "temp". (Yes, with the same contents...but that is not what I want :) ). So I thought it should be something with pointers. So tried the following:
Attempt 3:
objectName<-"temp"
object<<-get(objectName)
save(object, file=paste(dataDir, objectName, ".RData", sep=""))
load(paste(dataDir, objectName, ".RData", sep=""))
Same result as attempt 2. But I'm not sure I'm doing what I think I'm doing.
What is the solution for this?
Try save(list=objectName, file=paste(objectName, '.Rdata', sep='') )
.
The key is that the list
argument to save
takes a list of character strings that is the names of the objects to save (rather than the actual objects passed through ...
).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With