我必须解决以下问题。
(1)用lambda = 4
创建100个Poisson分布式r.v(2)计算在(1)中生成的样本的平均值。
(3)重复(1)和(2)10.000次。
(4)创建一个包含10.000均值的向量。
(5)在直方图中绘制矢量。
以下解决方案(?)是否正确?
> as.numeric(x)
> for(i in 1:10000){
> p <- rpois(100, lambda = 4)
> m <- mean(p)
> append(x, m)
>}
> hist(x, breaks = 20)
答案 0 :(得分:5)
这有点好笑。您可以以更清晰的方式快速完成您的要求。例如:
L <- 10000
emptyvector <- rep(NA, L)
for(i in 1:L){
emptyvector[i] <- mean(rpois(100, lambda = 4))
}
hist(emptyvector)
我会利用replicate()函数创建一个结果矩阵然后运行colMeans来快速获取我的向量。
meanvector <- colMeans(replicate(10000, rpois(100, lambda = 4)))
hist(meanvector, main = "Mean values from 10,000 runs of \nPoisson n = 100")
答案 1 :(得分:2)
hist(replicate(10000, mean(rpois(100, lambda = 4))))
答案 2 :(得分:0)
您需要再次为该值指定x。
x1 <- x <- NULL
for(i in 1:10000){
p <- rpois(100, lambda = 4)
m <- mean(p)
x[length(x) + 1] <- m
x1 <- append(x1, m)
## X or x1 vector will suffice for histogram
}
hist(x1, breaks = 20)