[R] why does this simple example NOT work?
Berend Hasselman
bhh at xs4all.nl
Fri Jul 20 17:17:53 CEST 2012
Duncan Murdoch-2 wrote
>
> On 12-07-20 2:50 AM, Martin Ivanov wrote:
>> Hello,
>>
>> I want to create and save objects in a loop, but this is precluded by the
>> following obstacle:
>> this part of the script fails to work:
>>
>> assign(x=paste("a", 1, sep=""), value=1);
>> save(paste("a", 1, sep=""), file=paste(paste("a", 1, sep=""), ".RData",
>> sep=""))
>
> paste("a", 1, sep="") is equivalent to "a1". So you are saving the
> string "a1" to the file "a1.RData". You presumably want to save the
> value of the variable a1, not that string. (Though you didn't say that.
> It's helpful to describe what you don't like, don't just say it "fails
> to work".)
>
> If you have the name of a variable in a string, you can use get() to get
> the value. So I think this code would do what you want:
>
> name <- paste0("a", 1)
> assign(x=name, value=1)
> save(get(name), file=paste0(name, ".RData"))
>
I tried that in R2.15.1 and got the error message:
Error in save(get(name), file = paste0(name, ".RData")) :
object ‘get(name)’ not found
Using the list argument "worked":
save(list=name, file=paste0(name, ".RData"))
Berend
--
View this message in context: http://r.789695.n4.nabble.com/why-does-this-simple-example-NOT-work-tp4637158p4637228.html
Sent from the R help mailing list archive at Nabble.com.
More information about the R-help
mailing list