[R] Variable definition problem
Greg Snow
snow at fisher.byu.edu
Fri Apr 19 19:10:41 CEST 2002
On Thu, 18 Apr 2002, T. Hotchi wrote:
> Hello, what does this error message indicate and how do I avoid this?
> (sample code below)
>
> Thank you.
>
> -Tosh
>
> #read in the data table
> co<-read.table("co.txt",header=T,as.is=T)
>
> for (i in 1:3){
> paste("logco",i, sep="")<-log(co$co[co$day==i])
> }
>
> Gives the error:
> Error: Target of assignment expands to non-language object
Another response pointed you to the assign function which is the way to do
what you are trying to do. However assigning to global variables in a
loop or function is often not a good idea. If you want to save a bunch of
things and generate their names on the fly then a list is often a better
approach. Replace your above code with something like:
mylogs <- list() # create an empty list to put data into
for (i in 1:3){
mylogs[[ paste("logco",i, sep="") ]] <- log(co$co[co$day==i])
}
now you can access the results in several different ways:
mylogs[["logco1"]]
mylogs$logco1
or
attach(mylogs)
logco1
This approach generaly does what you want and keeps from creating to many
top level global variables. It is also easier to dump one single list to
a file for backup or tranfer than to do the same with all of your global
variables.
hope this helps,
--
Greg Snow, PhD Office: 223A TMCB
Department of Statistics Phone: (801) 378-7049
Brigham Young University Dept.: (801) 378-4505
Provo, UT 84602 email: gls at byu.edu
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !) To: r-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
More information about the R-help
mailing list