phyperR {DPQ}  R Documentation 
Ronly version of R's original phyper() algorithm
Description
An R version of the first phyper()
algorithm in R, which was
used up to svn rev 30227
on 20040709.
Usage
phyperR(q, m, n, k, lower.tail=TRUE, log.p=FALSE)
Arguments
q 
vector of quantiles representing the number of white balls drawn without replacement from an urn which contains both black and white balls. 
m 
the number of white balls in the urn. 
n 
the number of black balls in the urn. 
k 
the number of balls drawn from the urn, hence must be in 
lower.tail 
logical; if TRUE (default), probabilities are

log.p 
logical; if TRUE, probabilities p are given as log(p). 
Value
a numeric vector similar to phyper(q, m, n, k)
.
Note
The original argument list in C
was (x, NR, NB, n)
where
there were red and black balls in the urn.
Note that we have vectorized a translation to R of the original C code.
Author(s)
Martin Maechler
See Also
phyper
and our phyperR2()
for the pure R
version of the newer (Welinder) phyper()
algorithm
Examples
m < 9:12; n < 7:10; k < 10
x < 0:(k+1) # length 12
## confirmation that recycling + lower.tail, log.p now work:
for(lg in c(FALSE,TRUE))
for(lt in c(FALSE, TRUE)) {
cat("(lower.tail = ", lt, "  log = ", lg,"):\n", sep="")
withAutoprint({
(rr <
cbind(x, m, n, k, # recycling (to 12 rows)
ph = phyper (x, m, n, k, lower.tail=lt, log.p=lg),
phR = phyperR(x, m, n, k, lower.tail=lt, log.p=lg)))
all.equal(rr[,"ph"], rr[,"phR"], tol = 0)
## saw 4.706e15 1.742e15 7.002e12 1.086e15 [x86_64 Lnx]
stopifnot(all.equal(rr[,"ph"], rr[,"phR"],
tol = if(lg && !lt) 2e11 else 2e14))
})
}