On 18-09-2013, at 14:43, ioanna ioannou <ii54...@msn.com> wrote: > Hello all, > > A very simple problem. > > Lets assume I have an interval [0,1] and I split it in 6 bins having > thresholds: > pro= cbind(0, 0.3675509, 0.8618615, 0.9814291, 0.9975283, 0.9997789, > 1.0000000, > 0, 0.3662881, 0.8609743, 0.9812032, 0.9974822, 0.9997738, > 1.0000000) > > dim(pro)<-c(7,2) > > I randomly generate a number and I want to identify which bin it belongs > to. How? What I provide below doesn't seem to be working.
"Doesn't seem to be working" is pretty vague. It either works or it doesn't. What are you seeing? An error message (I got one)? Wrong result? > Any ideas? > Yes. In the expression "j in 1:length(pro[,i])-1" the 1 is subtracted from the left and righthand side of :. The expression should read: j in 1:(length(pro[,i])-1) > for (i in 1:2){ > ids<-runif(1) > for (j in 1:length(pro[,i])-1){ > if (ids < pro[j,i]) { > ds[i]<-j You need to break after this. > } > else { > ds[i]<-6 > } > } > } > Alternative to Jim's suggestion is: have a look at findInterval. Berend > Best, > IOanna > > ______________________________________________ > R-help@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. ______________________________________________ R-help@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.