[R] how to assign a value?

William Dunlap wdunlap at tibco.com
Sun Dec 11 20:14:13 CET 2011


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-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On Behalf Of Jinsong Zhao
> Sent: Sunday, December 11, 2011 7:28 AM
> To: r-help at 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 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