Re: [R] using index of a loop as a macro variable

From: Thomas Lumley <tlumley_at_u.washington.edu>
Date: Tue 05 Jul 2005 - 06:47:40 EST

On Mon, 4 Jul 2005, E. Michael Foster wrote:
> I'm a long-time STATA user and a R newbie. I'm doing ok, but I'm addicted
> to STATA macro variables. Is there something like a macro variable in R?
>
> Specifically, I'd like to be able to do something like
>
> for (i in 1:3) {
> .....
> x`i' <- ...
> }
>
> where R would resolve x`i' to the objects named x1, x2 and x3 as I move
> through the loop. I guess I could create these in advance of the loop and
> fill them in, but I'd rather not.
>
> Is there a way to use an index of a loop in this manner?

No. Well, actually, yes, but you don't want to. Stata macros rarely translate word-for-word into R. There is a FAQ describing how to do this sort of thing, but the most important paragraph is the last one, where it says not to do this.

What you want is a list.

for(i in 1:3){

     .....
     x[[i]]<-...

}

Now, x needs to exist before the loop. You can use

    x<-NULL
to create it, or if you know how long it will be you can use

    x<-vector("list",3)

         -thomas



R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html Received on Tue Jul 05 06:50:34 2005

This archive was generated by hypermail 2.1.8 : Fri 03 Mar 2006 - 03:33:12 EST