2017-10-10 138 views
0

好的,我是R的全新產品,並且無法實現模擬的嵌套for循環。該代碼的目標應該是對於兩個Beta分佈,每個結果的概率大於1/2,計數器遞增。然後基於這個計數器,通過除以N(人口規模)來計算概率。但是,我希望這個運行n個值的範圍,並創建這些概率(p)的分佈,每個n值的結果。儘管如此,我仍然遇到困難。任何幫助將不勝感激!!R中的嵌套for循環

守則內的for循環:

n = 5000 
    counter = 0 
    x = rbeta(n,3,1) 
    y = rbeta(n,3,1) 

    for (i in 1:n) 
    { 
     if((y[i]-x[i] >= 1/2)) 
     { 
     counter = counter +1 
     } 
    } 
    p = counter/n 

回答

0

如果要計算p,你可以做p <- mean(y - x > 1/2)。要爲一系列n值做到這一點,創造價值n.range的向量和做

n.range <- seq(100, 5000, 100) 
p <- rep(NA, length(n.range)) 
for(n in n.range){ 
    x <- rbeta(n,3,1) 
    y <- rbeta(n,3,1) 
    p[n == n.range] <- mean(y - x > 1/2) 
} 
hist(p) 
+0

這正是我一直在尋找這樣做!感謝您的幫助! –