Hi, All: For most but not all cases, qbinom is the inverse of pbinom. Consider the following example, which generates an exception:
> (pb01 <- pbinom(0:1, 1, .5, log=T, lower.tail=FALSE)) [1] -0.6931472 -Inf Since "lower.tail=FALSE", Pr{X>1} = 0 in this context, and log(0) = -Inf, consistent with the documentation. However, the inverse of this does NOT recover 0:1: > qbinom(pb01,1, .5, log=T, lower.tail=F) [1] 0 NaN Shouldn't the NaN here be 1? If yes, this is relatively easy to fix. Consider for example the following: qbinom. <- function (p, size, prob, lower.tail = TRUE, log.p = FALSE){ q. <- .Internal(qbinom(p, size, prob, lower.tail, log.p)) q.[p==(-Inf)] <- 1 q. } > qbinom.(pb01,1, .5, log=T, lower.tail=F) [1] 0 1 Warning message: NaNs produced in: qbinom(p, size, prob, lower.tail, log.p) It's also easy to eliminate the Warning. Consider for example the following: qbinom. <- function (p, size, prob, lower.tail = TRUE, log.p = FALSE){ if(any(p.inf <- p==(-Inf))&&(!lower.tail)&&log.p){ n <- max(length(p), length(size), length(prob)) p <- rep(p, length=n) size <- rep(size, length=n) prob <- rep(prob, length=n) q. <- size q.[p>(-Inf)] <- .Internal(qbinom(p[!p.inf], size[!p.inf], prob[!p.inf], lower.tail, log.p)) return(q.) } .Internal(qbinom(p, size, prob, lower.tail, log.p)) } I suspect that for the right person, it would likely be easy to fix this in the .Internal qbinom code. However, that's beyond my current R skill level. Thanks for all your efforts to make R what it is today. Best Wishes, spencer graves -- Spencer Graves, PhD Senior Development Engineer PDF Solutions, Inc. 333 West San Carlos Street Suite 700 San Jose, CA 95110, USA [EMAIL PROTECTED] www.pdf.com <http://www.pdf.com> Tel: 408-938-4420 Fax: 408-280-7915 ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel