r - 运行 rgeom 样本并存储每个复制的平均值和 SD
问题描述
尝试运行 follow rgeom 500 次并存储每个复制的平均值和标准差。
rgeom(100, prob = .2)
到目前为止,我有:
geom_means = rep(NA, 500)
geom_sd = rep(NA, 500)
X_geom500 <- replicate(500, {
samp <- rgeom(100, prob = .2)
geom_means = round(mean(samp),2)
})
X_geom500_sd <- replicate(500, {
samp <- rgeom(100, prob = .2)
round(sd(samp),2)
})
如果我单独运行代码,我可以获得 500 个均值和 500 个 sd 的向量,但我认为它们不匹配。我尝试创建一个 for 循环来存储每次迭代的平均值和 SD,但我认为它不正确。
for i in range(1:500):
sample[i] <- rgeom(100, prob = .2)
geom_means[i] <- mean(sample[i])
geom_sd[i] <- sd(sample[i])
解决方案
您可以从每个复制中获得均值和标准差:
set.seed(123)
n_rep <- 5
samp_geom <- function(n, prob) {
samp <- rgeom(n, prob)
return(list(mean = round(mean(samp), 2), sd = round(sd(samp, 2))))
}
replicate(n_rep, samp_geom(100, .2))
[,1] [,2] [,3] [,4] [,5]
mean 3.78 3.64 4.09 3.68 3.73
sd 4 4 5 5 4
将结果值存储在单独的向量中,如下所示:
geom_means <- unlist(samps["mean", ])
geom_means
# [1] 3.78 3.64 4.09 3.68 3.73
geom_sd <- unlist(samps["sd", ])
geom_sd
# [1] 4 4 5 5 4
推荐阅读
- javascript - 函数方法 .apply() .call() .bind()
- unity3d - Multiple match with same name - Unity Match Maker
- java - How to convert Json Array to Java Array of Objects
- splunk - Log data from dataPower to splunk
- c# - Can't Send more Than 64 Byte to Arduino
- bash - 在这种情况下如何创建行数组?
- websphere - WebSphere Liberty 在 message.log 中自定义时间戳
- android - 单击推送通知时,未打开特定活动
- python - 在 Python 中使用另一个函数返回的输出
- c# - 如何在 xml 文件中查找特定节点?