[R] R for loop question

Juan Manuel Barreneche jumanbar at gmail.com
Tue May 20 21:37:05 CEST 2008


I had to do the same thing many times, i usually use a combination of the 
functions "eval", "parse" and "sprinf", as below:

k <- 1
for (i in 1:length(stats$hour)) {
   eval(parse(text=sprintf("x%s <- dataset[%s,(3:15)]", i, k)))
   k <- k+1
}

what it does is:
eval(parse(text=STRING)) is a way to execute what is written on STRING
and 
sprintf("TEXT%sTEXT", VARIABLE) substitutes the %s part of the text in the 
first argument for whatever is on the second argument (you can extend this to 
many %s parts)

Note: i've changed the "=" for the "<-" because someone told me that it was 
more correct (don't ask me why though!). 

JM

El Martes, 20 de Mayo de 2008 13:58, Douglas M. Hultstrand escribió:
> Hello,
>
> I am trying to assign a variable name (x1,x2,x3...) in a loop statement
> that is based on a counter (counter is based on the number of hours
> within the datafile).  The x1,x2 data will later be called for plotting
> the data.  Below is a clip of the for loop I am using, any suggestions?
>
> k = 1
> for (i in 1:length(stats$hour)) {
>   "x(i)" = dataset[k,(3:15)]
>   k = k+1
>  }
>
> Thanks,
> Doug



More information about the R-help mailing list