[R] get and save

Duncan Murdoch murdoch.duncan at gmail.com
Fri Sep 9 12:08:43 CEST 2011


On 11-09-09 5:55 AM, Göran Broström wrote:
> I have a data frame 'tmp' and a vector 'name' containing 'd2'.
> I want to save 'tmp' under the name hidden in 'name', and the file must have
> the same name, plus the extension '.rda'.
> So I try
>
>> tmp
>   x y
> 1 1 3
> 2 2 4
>> name
> [1] "d2"
>> assign(name, tmp)
>> summary(get(name))
>        x              y
> Min.   :1.00   Min.   :3.00
> 1st Qu.:1.25   1st Qu.:3.25
> Median :1.50   Median :3.50
> Mean   :1.50   Mean   :3.50
> 3rd Qu.:1.75   3rd Qu.:3.75
> Max.   :2.00   Max.   :4.00
>> save(get(name), file = paste(name, "rda", sep = "."))
> Error in save(get(name), file = paste(name, "rda", sep = ".")) :
>   object ‘get(name)’ not found
> ++++++++++++++++++++++
> I can't figure out where I 'get' it wrong.

save() does funny things with its arguments:  the first one is not 
evaluated in the standard way.  It wants a name or a character string. 
So you would want to pass name instead of get(name), but that would end 
up being interpreted the wrong way and you'd just save the name 
variable, not the thing it refers to.

You will probably have to use do.call to do this, i.e.

do.call(save, list(name, file=paste(name, "rda", sep = ".")))

This will evaluate the name before passing it to save().

Duncan Murdoch


>
> In real life I have a bunch of text files named like 'd1.txt', ...,
> 'd100.txt'.
> I want to convert all of them to R data files, with one data frame in each
> named d1, ..., d100.
>
> Any suggestion is much appreciated!
>
>
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.



More information about the R-help mailing list