Skip to contents

Density, distribution function, quantile function and random generation for the negative binomial distribution, modified to work with rvecs.

Usage

dnbinom_rvec(x, size, prob, mu, log = FALSE)

pnbinom_rvec(q, size, prob, mu, lower.tail = TRUE, log.p = FALSE)

qnbinom_rvec(p, size, prob, mu, lower.tail = TRUE, log.p = FALSE)

rnbinom_rvec(n, size, prob, mu, n_draw = NULL)

Arguments

x

Quantiles. Can be an rvec.

size

Number of trials. See stats::dnbinom(). Can be an rvec.

prob

Probability of success in each trial. See stats::dnbinom(). Can be an rvec.

mu

Mean value. See stats::dnbinom(). Can be an rvec.

log, log.p

Whether to return results on a log scale. Default is FALSE. Cannot be an rvec.

q

Quantiles. Can be an rvec.

lower.tail

Whether to return \(P[X \le x]\), as opposed to \(P[X > x]\). Default is TRUE. Cannot be an rvec.

p

Probabilities. Can be an rvec.

n

The length of random vector being created. Cannot be an rvec.

n_draw

Number of random draws in the random vector being created. Cannot be an rvec.

Value

  • If any of the arguments are rvecs, or if a value for n_draw is supplied, then an rvec

  • Otherwise an ordinary R vector.

Details

Functions dnbinom_rvec(), pnbinom_rvec(), pnbinom_rvec() and rnbinom_rvec() work like base R functions dnbinom(), pnbinom(), qnbinom(), and rnbinom(), except that they accept rvecs as inputs. If any input is an rvec, then the output will be too. Function rnbinom_rvec() also returns an rvec if a value for n_draw is supplied.

dnbinom_rvec(), pnbinom_rvec(), pnbinom_rvec() and rnbinom_rvec() use tidyverse vector recycling rules:

  • Vectors of length 1 are recycled

  • All other vectors must have the same size

Examples

x <- rvec(list(c(3, 5),
               c(0, 2)))
dnbinom_rvec(x, size = 6, prob = 0.2)
#> <rvec_dbl<2>[2]>
#> [1] 0.001835,0.005285  0.000064,0.0008602
pnbinom_rvec(x, size = 6, prob = 0.2)
#> <rvec_dbl<2>[2]>
#> [1] 0.003066,0.01165  0.000064,0.001231

rnbinom_rvec(n = 2,
             size = 2,
             mu = c(4, 8),
             n_draw = 1000)
#> <rvec_int<1000>[2]>
#> [1] 3 (0, 13) 7 (0, 25)