[R] Trouble Passing a for loop variable (iteration #) to a data frame

From: Galen Moore <galen.a.moore_at_gmail.com>
Date: Mon, 25 Apr 2011 16:29:42 -0600


Greetings -  

I am working on a piece of code to simulate vehicle times in and out in each of a number of parking spaces. At this stage, my code basically does what it is supposed to do but for the sequential number of each new parking event for a given space (i.e., the index of the loop variable). Instead of passing the index of the loop variable (iter) to the data frame, it passes the value of the total number of iterations. Eventually, the number of iterations (parking events in a given space) will be determined by an rnorm() fcn, so I am not looking for a process that locks-in the number of iterations. The total eventual data set size is small-ish, so I'm not worried about speed.  

I'm sure my problem lies somehow in my setup of the data frames and my rbind() fcns, but a great many attempts and several hours of searching online have not yet brought success.  

Can you please suggest what I need to do to get the iteration # to appear in the "iter" vector and therefore to the data frame?  

Many thanks,  

Galen    

> # fabdata3.r

> # fabricate sample data

>

> #declare the mean duration

> dur<-.04

>

> #declare the stdDev of the rnorm() fcn (duration)

> varc<-.01

>

> sp<-numeric()

> iter<-numeric()

> ti<-numeric()

> to<-numeric()

> actdur<-numeric()

> #newline<-data.frame(sp, iter, ti, to, actdur)

> ds<-data.frame(sp, iter, ti, to, actdur)

>

> # BEGIN OUTER LOOP

> for (sp in c(1:3)) {

+

+ ct<-1

+ # BEGIN INNER LOOP +

+ x <- seq(1, 4, by=1)

+ for (i in seq(along=x)) {

+

+                         if (i == 1)   {

+                          ti[1]<-((.333333+rnorm(1, dur, varc)))

+                          to[1]<-((ti[1]+rnorm(1, dur, varc)))

+                          actdur[1]<-(to[1]-ti[1])

+                          iter<-x[1]

+

+                          }

+                          

+                         else {

+                         # set subsequent time-ins to prev to + a rand#

+                         ti[i]<-((to[i-1]+rnorm(1, dur, varc)))

+                         # calculate each event's time-out

+                         to[i]<-((ti[i]+rnorm(1, dur, varc)))

+                         # calculate each event's actual duration

+                         actdur[i]<-(to[i]-ti[i])

+                         iter<-x[i]

+

+                         }

+                          spStep<-paste("sp Value is ", sp)

+                          print(spStep)

+                          iterStep<-paste("iter Value is ", iter)

+                          print(iterStep)

+                          

+                         newrow<-data.frame(sp, iter, ti, to, actdur)

+                         ct=ct+1

+                  }  #END INNER LOOP

+                  ds<-rbind(ds, newrow)

+             }

[1] "sp Value is 1"

[1] "iter Value is 1"

[1] "sp Value is 1"

[1] "iter Value is 2"

[1] "sp Value is 1"

[1] "iter Value is 3"

[1] "sp Value is 1"

[1] "iter Value is 4"

[1] "sp Value is 2"

[1] "iter Value is 1"

[1] "sp Value is 2"

[1] "iter Value is 2"

[1] "sp Value is 2"

[1] "iter Value is 3"

[1] "sp Value is 2"

[1] "iter Value is 4"

[1] "sp Value is 3"

[1] "iter Value is 1"

[1] "sp Value is 3"

[1] "iter Value is 2"

[1] "sp Value is 3"

[1] "iter Value is 3"

[1] "sp Value is 3"

[1] "iter Value is 4"

> print(ds)

   sp iter ti to actdur

1 1 4 0.3600055 0.4123550 0.05234955

2 1 4 0.4343887 0.4640804 0.02969170

3 1 4 0.5240268 0.5622272 0.03820032

4 1 4 0.5945877 0.6436489 0.04906118

5 2 4 0.3694827 0.4166405 0.04715775

6 2 4 0.4609841 0.4968517 0.03586767

7 2 4 0.5357721 0.5735439 0.03777185

8 2 4 0.6207077 0.6512799 0.03057217

9 3 4 0.3801887 0.4122605 0.03207179

10 3 4 0.4440002 0.4916171 0.04761685

11 3 4 0.5380228 0.5791549 0.04113214

12 3 4 0.6087923 0.6291451 0.02035284

> # END OUTER LOOP

>

        [[alternative HTML version deleted]]



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 Mon 25 Apr 2011 - 23:02:36 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 Thu 28 Apr 2011 - 02:50:37 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