首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >(简单)生成R中的多个(1000)随机变量

(简单)生成R中的多个(1000)随机变量
EN

Stack Overflow用户
提问于 2017-11-20 22:59:35
回答 2查看 1.6K关注 0票数 0

我试图创建一个变量Z的1000个样本,其中首先生成12个统一的RV's Ui,然后让Z=∑(Ui-6)从∑到12。

代码语言:javascript
复制
u <- runif(12)
Z <- sum(u-6)

然而,我不知道如何重复这1000倍。最后,我们的愿望是画出Z's的直方图,理想的情况是它类似于正常的曲线。对不起,很明显,我是你在这个领域的初学者。谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-11-20 23:21:01

这就是你想要的吗?

代码语言:javascript
复制
set.seed(2017);
n <- 1000;
u <- matrix(runif(12 * n), ncol = 12);
z <- apply(u, 1, function(x) sum(x - 6));

# Density plot
require(ggplot2);
ggplot(data.frame(z = z), aes(x = z)) + geom_density();

说明:一次绘制12 * 1000统一样本,存储在1000x12矩阵中,然后和行条目x - 6

票数 0
EN

Stack Overflow用户

发布于 2017-11-20 23:22:35

如果我理解这个问题,这是一个非常简单的方法--使用replicate()来执行任意次数的计算。

代码语言:javascript
复制
# number of values to draw per iteration 
n_samples <- 12

# number of iterations 
n_iters <- 1000

# get samples, subtract 6 from each element, sum them (1000x)
Zs <- replicate(n_iters, sum(runif(n_samples) - 6))

# print a histogram 
hist(Zs)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47402541

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档