Draw random samples from a generalized gamma distribution using the parameterization from flexsurv. Written in C++ for speed. Equivalent to flexsurv::rgengamma.

fast_rgengamma(n, mu = 0, sigma = 1, Q)

Arguments

n

Number of random observations to draw.

mu

Vector of location parameters. and columns correspond to rates during specified time intervals.

sigma

Vector of scale parameters as described in flexsurv.

Q

Vector of shape parameters.

Value

A vector of random samples from the generalized gamma distribution. The length of the sample is determined by n. The numerical arguments other than n are recycled so that the number of samples is equal to n.

Examples

n <- 1000 m <- 2 ; s <- 1.7; q <- 1 ptm <- proc.time() r1 <- fast_rgengamma(n, mu = m, sigma = s, Q = q) proc.time() - ptm
#> user system elapsed #> 0.002 0.000 0.002
ptm <- proc.time() library("flexsurv") r2 <- flexsurv::rgengamma(n, mu = m, sigma = s, Q = q) proc.time() - ptm
#> user system elapsed #> 0.002 0.000 0.003
summary(r1)
#> Min. 1st Qu. Median Mean 3rd Qu. Max. #> 0.0000 0.9654 4.2415 11.8841 13.6872 195.9726
summary(r2)
#> Min. 1st Qu. Median Mean 3rd Qu. Max. #> 0.0000 0.8013 3.7548 12.0234 13.3860 281.9889