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

时间:2017-11-20 22:59:35

标签: r

我正在尝试创建一个特定变量Z的1000个样本,其中我首先生成12个统一RV的U i ,然后得到Z =Σ(U i -6)从i = 1到12.我可以从

生成一个Z.
u <- runif(12)
Z <- sum(u-6)

但是我不知道如何重复1000x。最后,希望绘制Z的直方图,理想情况下它类似于正常曲线。对不起,显然我是初学者,因为你可以进入这个领域。谢谢!

2 个答案:

答案 0 :(得分:1)

如果我理解这个问题,这是一种非常简单的方法 - 使用replicate()可以根据需要多次执行计算。

# 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 :(得分:0)

这就是你要追求的吗?

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();

enter image description here

说明:一次性绘制12 * 1000个统一样本,以1000 x 12矩阵存储,然后对行条目x - 6求和。