【问题标题】:How to sample from a user-defined function that generates random numbers如何从生成随机数的用户定义函数中采样
【发布时间】:2013-10-03 14:06:37
【问题描述】:

我编写了一个函数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)

【问题讨论】:

    标签: r


    【解决方案1】:

    尝试使用replicate

    replicate(10, x())
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多