在r中重复一个实验

时间:2014-03-06 21:38:07

标签: r for-loop

我有运行实验的代码:

X=rbinom(5,1,0.5)
A=0
for (i in 1:5)
 {A=A+X[i]}
B=rbinom(A,1,0.5)
Y=0
for (i in 1:A)
 {Y=Y+B[i]}

我试图重复1000次结果并将其存储在矢量中,但我不确定如何去处理它。

1 个答案:

答案 0 :(得分:1)

采纳马修的建议(一般来说是一件好事),并简化你的代码:

res <- replicate(
  1000,
  sum(rbinom(sum(rbinom(5,1,0.5)),1,0.5))
)

我跑了一次并得到了这个:

table(res)
# res
#   0   1   2   3   4 
# 254 386 240 102  18 

虽然您可能希望确保它是您想要的,但这似乎是合理的。失败正在发生,因为代码中的A通常为0,但是这样重新制定它不是一个问题(但是,这意味着我无法轻松地将您的代码与我的代码进行比较以确保它正在做同样的事情。)

请注意,您不太可能获得5作为结果(实际上我们不在这里),因为这意味着您必须连续两次赢取5次硬币翻转以显示在决赛中结果