[R] Empirical P Value

(Ted Harding) Ted.Harding at nessie.mcc.ac.uk
Tue Oct 26 22:21:51 CEST 2004


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) <Ted.Harding at nessie.mcc.ac.uk>
Fax-to-email: +44 (0)870 094 0861  [NB: New number!]
Date: 26-Oct-04                                       Time: 20:13:33
------------------------------ XFMail ------------------------------




More information about the R-help mailing list