小编Jam*_*gle的帖子

从密度对象生成随机数(或更广泛地从一组数字生成)

假设我有一组我怀疑来自同一分布的数字.

set.seed(20130613)
x <- rcauchy(10)
Run Code Online (Sandbox Code Playgroud)

我想要一个从同一个未知分布中随机生成数字的函数.我想到的一种方法是创建一个density对象,然后从中获取CDF并获取随机统一变量的逆CDF (参见Wikipedia).

den <- density(x)

#' Generate n random numbers from density() object
#' 
#' @param n The total random numbers to generate
#' @param den The density object from which to generate random numbers
rden <- function(n, den)
{
        diffs <- diff(den$x)
        # Making sure we have equal increments
        stopifnot(all(abs(diff(den$x) - mean(diff(den$x))) < 1e-9))
        total <- sum(den$y)
        den$y <- den$y / total
        ydistr <- cumsum(den$y)
        yunif <- runif(n)
        indices <- sapply(yunif, …
Run Code Online (Sandbox Code Playgroud)

random r

9
推荐指数
1
解决办法
4164
查看次数

标签 统计

r ×1

random ×1