首页 > 解决方案 > 如何通过重复模拟得到不同的结果?

问题描述

我试图测试从 64 个对象中随机选择的 24 个样本的标准误差,但是当我尝试运行 10 次时,它给出了 10 个相同的答案。用重复来测试它的正确方法是什么?这是我的代码和结果。

po=c(900,822,781,805,670,1238,573,634,578,487,442,451,459,464,400,366,364,317,328,302,288,291,253,291,308,272,284,255,270,214,195,260,209,183,163,253,232,260,201,147,292,164,143,169,139,170,150,143,113,115,123,154,140,119,130,127,100,107,114,111,163,116,122,134)

se_1 = sd(sample(po[1:64],24,replace = FALSE)) * sqrt(1/24)

rep(se_1, times=10)
#[1] 44.69907 44.69907 44.69907 44.69907 44.69907 44.69907 44.69907 44.69907
#[9] 44.69907 44.69907

标签: rrandom

解决方案


se_1一个函数

se_1 <- function() sd(sample(po[1:64],24,replace = FALSE)) * sqrt(1/24)

那么你可以这样

replicate(se_1(), times=10)

或者你可以做

replicate(sd(sample(po[1:64],24,replace = FALSE)) * sqrt(1/24), times=10)

replicate()接受一个您想要重复调用的表达式,而rep()只是重复一个现有值(或多个值)一定次数。它不计算“新”值。


推荐阅读