如何从生成随机数的用户定义函数中进行采样

时间:2013-10-03 14:06:37

标签: r

我编写了一个函数x <- function() ...,根据我想研究的分布生成随机数。

> x()
[1] 0.8947771
> x()
[1] 0.4478619

我可以通过for循环使用x生成10个随机数的列表:

> s <- c()
> for(i in 1:10) s <- c(s,x())
> s
 [1] 0.6035317 0.4556456 0.6063270 0.4567958 0.5805186 0.7688124 0.6722493
 [8] 0.3908357 0.4513608 0.2747064

但是,这看起来很笨拙。我想知道:是否有更好的方法来创建这样的列表?

在R中生成列表编号有一些简洁的方法,例如(1:10)^2(生成正方形)和runif(10,0,1)(生成0到1之间的均匀随机数),rnorm(10) (它生成正态分布的数字)但我似乎无法在我的情况下使用它:x(1:10)返回Error in x(1:10) : unused argument(s) (1:10)

1 个答案:

答案 0 :(得分:7)

尝试使用replicate

replicate(10, x())

另请注意,您在圈2 中,请阅读R inferno