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. ______________________________________________ R-help@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.