Re: [R] R for loop question

From: Juan Manuel Barreneche <jumanbar_at_gmail.com>
Date: Tue, 20 May 2008 16:37:05 -0300

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



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. Received on Tue 20 May 2008 - 19:49:48 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Tue 20 May 2008 - 20:32:11 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.

list of date sections of archive