I find that get() and assign() are awkward to use and that the syntax is easier if you put your objects into a list or environment. To me, it also makes it clearer what the code is doing and keeps the output of objects() shorter and easier to manage. E.g.,
nResults <- 9 results <- vector("list", nResults) # or results <- new.env() for(i in 1:nResults) { resultName <- paste("a.", i, sep="") results[[resultName]] <- 1:i results[[resultName]][i] <- i+50 } Bill Dunlap Spotfire, TIBCO Software wdunlap tibco.com > -----Original Message----- > From: r-help-boun...@r-project.org [mailto:r-help-boun...@r-project.org] On > Behalf Of Jinsong Zhao > Sent: Sunday, December 11, 2011 7:28 AM > To: r-help@r-project.org > Subject: [R] how to assign a value? > > Hi there, > > I hope to modify values in a vector or matrix in the following code: > > for (i in 1:9) { > assign(paste("a.", i, sep = ""), 1:i) > get(paste("a.", i, sep = ""))[i] <- i+50 > } > > I get the following error message: > > Error in get(paste("a.", i, sep = ""))[i] <- i + 50 : > target of assignment expands to non-language object > > I have read the FAQ "How can I turn a string into a variable?", however, > I don't find a way to deal with: > > get(paste("a.", i, sep = ""))[i] <- i+50 > > Any suggestions? Thanks in advance! > > Regards, > Jinsong > > ______________________________________________ > 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. ______________________________________________ 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.