On 26-Oct-04 Phineas Campbell wrote:
> I am trying to return the p value for a stat from the ECDF.
> That is the index of the first occurrence, on an ordered vector,
> of a value either greater than or equal to a given value.
>
> Ideally I would not have to order the vector beforehand.
>
> Currently I use:
>
> PValue<-function(stat, ECDF){
> ###Get the length of the ECFD
> L<-length(ECDF)
> ###Loop through the ECDF until the p value is found
> for(i in 1:L){
> if(ECDF[i]>=stat){
> break
> }
> }
> ###Return the 3 values that bracket the p value
> c((i-1)/L, i/L, (i+1)/L)
> }
>
> Is there a way of doing this that avoids the explicit loop?
PValue<-function(stat, ECDF){
###Get the length of the ECFD
L<-length(ECDF)
i<-min(which(ECDF>=stat))
###Return the 3 values that bracket the p value
c((i-1)/L, i/L, (i+1)/L)
}
will do what your function does, without the loop.
Best wishes,
Ted.
--------------------------------------------------------------------
E-Mail: (Ted Harding) <[EMAIL PROTECTED]>
Fax-to-email: +44 (0)870 094 0861 [NB: New number!]
Date: 26-Oct-04 Time: 20:13:33
------------------------------ XFMail ------------------------------
______________________________________________
[EMAIL PROTECTED] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html