首页 > 解决方案 > 从单个 rnorm 函数调用返回平均值和标准差

问题描述

  1. 我正在尝试创建一个列表列表,其中包含来自正态分布的平均值和标准偏差值,平均值为 5,标准偏差为 5,样本大小为 10,模拟了 50,000 次。

    例如List = ((5, 5), (5, 5), (5, 5))

  2. 我知道我可以执行以下代码从上述过程生成一个包含 50,000 个样本均值的向量:

    sample_means_1 <- rep (NA, reps)
    for (i in 1: reps){
        sample_means_1[i] <- mean(rnorm(n_10, 5, 5))
    }
    

    sample_means_1现在包含 50,000 个样本均值的向量,样本大小为 10

  3. 我不知道的是如何在使用时捕获同一运行的平均值和标准偏差rnorm并将其插入列表类型结构中。

  4. 尝试将值返回到数据框中的方法是否更有意义?

谢谢,

编辑

请注意未来的读者:

  1. Ans in comment 从@user2974951 生成一个列表

    lapply(1:10,function(x){temp=rnorm(10);c(mean(temp),sd(temp))}) 
    
  2. Ans Accepted 从@James 生成一个矩阵

标签: rnormal-distribution

解决方案


您可以在其中使用匿名函数replicate从分布的重复抽取中提取统计信息:

replicate(5, {function(x) c(mean=mean(x),sd=sd(x))}(rnorm(10,5,5)))
         [,1]     [,2]     [,3]     [,4]     [,5]
mean 5.372839 4.042219 4.145441 5.148652 5.202886
sd   3.929017 5.190347 4.802461 5.515714 4.173267

推荐阅读