[R] Identifying the bin where a value is included.

Berend Hasselman bhh at xs4all.nl
Wed Sep 18 15:20:20 CEST 2013


On 18-09-2013, at 14:43, ioanna ioannou <ii54250 at 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 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.



More information about the R-help mailing list