[R] using index of a loop as a macro variable
Thomas Lumley
tlumley at u.washington.edu
Mon Jul 4 22:47:40 CEST 2005
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
More information about the R-help
mailing list