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

标签 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)

最佳答案

尝试使用 replicate

replicate(10, x())

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

关于r - 如何从生成随机数的用户定义函数中采样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19161405/

相关文章:

r - 指定 ggplot2 中点的形状

r - 基于分隔符将快速 data.table 列拆分为多行

r - 如何在R中的data.frame中添加文档?

r - 如何使用ggplot2在轴标签中同时使用上标和变量

r - 使用ggplot2仅将一个分割添加到一个构面

R:使用fitdistrplus在离散数据的直方图上拟合曲线

r - 如何避免 Shiny R 图中的闪烁错误?

r - 如何让向量作为 r 函数中的参数?

html - grep - 如何只返回列中字符串的匹配部分

r - R 中的高效分块时间序列