Re: [R] Help with a loop

From: Sofia Martinez <sofiamartinezv_at_gmail.com>
Date: Mon, 28 Jul 2008 19:10:03 +0100

HI
 the code is suppose to generate a random value selected uniformly as a time interval in seconds (that's the dT) from the range given from dtmin<-969   dtmax<-9884. Once that value is selected the program will generate the interval (ts1, ts2, and so on. for each sampling without getting out of their time limits.
For example for sample 1 the duration of the event is 1750 seconds (sorry I miss a one) so if the dt selected is 1200 for example it will generate a series of 1 then 1200 2400 and so on but since the we have while(i+dt[m]<tmax[m]) it will not print 2400, because there are not values for that.
but if ifelse(dtmin<=(tmax[1]-i), dt[1]<-round(runif(1,dtmin,(tmax[1]-i))), dt[1]<-(tmax[1]-i))
means that if the sample has a very short duration such as sample 1 then it will sample at 1200 seconds and then will sample from the range that is left so (1750-1200).
 I hope this clarifies a bit more. My problem is that since for each sample ts has several values I do not know how to store them in a way that allows me to do a loop.

On Mon, Jul 28, 2008 at 5:20 AM, Sofia Martinez <sofiamartinezv_at_gmail.com>wrote:

> HI:
> I need ideas on how to make this code shorter (maybe with a second loop?).
> The code as it is works, but in this case I only have 14 samples, but it
> will become insane with more, so I need a way to make it more automatic. The
> problem is that the output from ts1, ts2, and so on is a vector with more
> than one value, so I do not know how to solve this.
> Thanks
> Prenewbie
>
> The code is the following:
>
> duration<-c(750, 8940,17180, 8693,10100, 7990,24820, 6770,
> 7390,8450,18400,16252,6080,11030)
>
> tmax<-0
> dt<-0
> for (m in 1:14)
> {
> tmax[m]<-duration[m]
> dtmin<-969
> dtmax<-9884
> i<-1
> dt[m]<-round(runif(1,dtmin,(tmax[m]-1)))}
> ts<-c(1)
> ts1<-ts
> ts2<-ts1
> ts3<-ts1
> ts4<-ts1
> ts5<-ts1
> ts6<-ts1
> ts7<-ts1
> ts8<-ts1
> ts9<-ts1
> ts10<-ts1
> ts11<-ts1
> ts12<-ts1
> ts13<-ts1
> ts14<-ts1
> for (m in 1:2){
> while(i+dt[m]<tmax[m])
> {
> ts1<-append(ts,i+dt[1])
> i<-i+dt[1]
> ifelse(dtmin<=(tmax[1]-i), dt[1]<-round(runif(1,dtmin,(tmax[1]-i))),
> dt[1]<-(tmax[1]-i))
> ts2<-append(ts,i+dt[2])
> i<-i+dt[2]
> ifelse(dtmin<=(tmax[2]-i), dt[2]<-round(runif(1,dtmin,(tmax[2]-i))),
> dt[2]<-(tmax[2]-i))
> ts3<-append(ts,i+dt[3])
> i<-i+dt[3]
> ifelse(dtmin<=(tmax[3]-i), dt[3]<-round(runif(1,dtmin,(tmax[3]-i))),
> dt[3]<-(tmax[3]-i))
> ts4<-append(ts,i+dt[4])
> i<-i+dt[4]
> ifelse(dtmin<=(tmax[4]-i), dt[4]<-round(runif(1,dtmin,(tmax[4]-i))),
> dt[4]<-(tmax[4]-i))
> ts5<-append(ts,i+dt[5])
> i<-i+dt[5]
> ifelse(dtmin<=(tmax[5]-i), dt[5]<-round(runif(1,dtmin,(tmax[5]-i))),
> dt[5]<-(tmax[5]-i))
> ts6<-append(ts,i+dt[6])
> i<-i+dt[6]
> ifelse(dtmin<=(tmax[6]-i), dt[6]<-round(runif(1,dtmin,(tmax[6]-i))),
> dt[6]<-(tmax[6]-i))
> ts7<-append(ts,i+dt[7])
> i<-i+dt[7]
> ifelse(dtmin<=(tmax[7]-i), dt[7]<-round(runif(1,dtmin,(tmax[7]-i))),
> dt[7]<-(tmax[7]-i))
> ts8<-append(ts,i+dt[8])
> i<-i+dt[8]
> ifelse(dtmin<=(tmax[8]-i), dt[8]<-round(runif(1,dtmin,(tmax[8]-i))),
> dt[8]<-(tmax[8]-i))
> ts9<-append(ts,i+dt[9])
> i<-i+dt[9]
> ifelse(dtmin<=(tmax[9]-i), dt[9]<-round(runif(1,dtmin,(tmax[9]-i))),
> dt[9]<-(tmax[9]-i))
> ts10<-append(ts,i+dt[10])
> i<-i+dt[10]
> ifelse(dtmin<=(tmax[10]-i),
> dt[10]<-round(runif(1,dtmin,(tmax[10]-i))), dt[10]<-(tmax[10]-i))
> ts11<-append(ts,i+dt[11])
> i<-i+dt[11]
> ifelse(dtmin<=(tmax[11]-i),
> dt[11]<-round(runif(1,dtmin,(tmax[11]-i))), dt[11]<-(tmax[11]-i))
> ts12<-append(ts,i+dt[12])
> i<-i+dt[12]
> ifelse(dtmin<=(tmax[12]-i),
> dt[12]<-round(runif(1,dtmin,(tmax[12]-i))), dt[12]<-(tmax[12]-i))
> ts13<-append(ts,i+dt[13])
> i<-i+dt[13]
> ifelse(dtmin<=(tmax[13]-i),
> dt[13]<-round(runif(1,dtmin,(tmax[13]-i))), dt[13]<-(tmax[13]-i))
> ts14<-append(ts,i+dt[14])
> i<-i+dt[14]
> ifelse(dtmin<=(tmax[14]-i),
> dt[14]<-round(runif(1,dtmin,(tmax[14]-i))), dt[14]<-(tmax[14]-i))
> } }
> ts1<-append(ts,i+dt[1])
> ts2<-append(ts,i+dt[2])
> ts3<-append(ts,i+dt[3])
> ts4<-append(ts,i+dt[4])
> ts5<-append(ts,i+dt[5])
> ts6<-append(ts,i+dt[6])
> ts7<-append(ts,i+dt[7])
> ts8<-append(ts,i+dt[8])
> ts9<-append(ts,i+dt[9])
> ts10<-append(ts,i+dt[10])
> ts11<-append(ts,i+dt[11])
> ts12<-append(ts,i+dt[12])
> ts13<-append(ts,i+dt[13])
> ts14<-append(ts,i+dt[14])
>
>

        [[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 28 Jul 2008 - 18:53:02 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 Mon 28 Jul 2008 - 19:32:47 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