0
我有一個運行的實驗代碼:重複實驗中的R
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倍,並將其存儲在一個載體,但我不知道該如何去做。
我有一個運行的實驗代碼:重複實驗中的R
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倍,並將其存儲在一個載體,但我不知道該如何去做。
以馬修的建議(一件好事,一般做的),並簡化您的代碼:
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次硬幣翻轉以顯示最終結果。
您正在尋找'replicate'。 –
如果在最後一節運行'for(i in 1:A)...'時出現'A = 0',您的代碼也會失敗。我跑了它3次,並且在產生這個錯誤之前它從來沒有超過100次迭代。也許你想在這些情況下使用if語句返回'Y = 0' –