用r重复一个实验
我有运行实验的代码:用r重复一个实验,r,for-loop,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次并存储在一个向量中,但我不确定如何进行。接受Matthew的建议(通常这是一件好事),并简化代码: res <- replicate( 1000, sum(rbinom(sum(rbinom(5,1,0.5)),1,0.5)) ) 这似乎
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次并存储在一个向量中,但我不确定如何进行。接受Matthew的建议(通常这是一件好事),并简化代码:
res <- replicate(
1000,
sum(rbinom(sum(rbinom(5,1,0.5)),1,0.5))
)
这似乎是合理的,尽管你可能想确保它是你想要的。失败之所以发生,是因为代码中的A
通常为0,但以这种方式重新格式化它并不是一个问题(然而,这意味着我无法轻松比较您的代码和我的代码,以确保它做的事情完全相同)
请注意,您不太可能获得
5
作为结果(事实上,我们不在这里),因为这意味着您必须连续赢5次掷硬币才能显示在最终结果中。您正在寻找复制
。如果在最后一节中运行for(i in 1:a)…
时,a=0
,您的代码也会失败。。我运行了3次,但在产生这个错误之前,它从未经过100次迭代。在这些情况下,可能需要使用if语句返回Y=0
table(res)
# res
# 0 1 2 3 4
# 254 386 240 102 18