如何通过重复仿真获得不同的结果?

时间:2018-10-15 20:48:33

标签: r random

我试图测试从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

1 个答案:

答案 0 :(得分:2)

使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()只是重复一个或多个现有值一定次数。它不计算“新”值。