2015-04-05 117 views
1

我基本上是在計算我希望繪製的概率。我的目標是將這些列入清單或向量中,但這樣做一直存在困難。我寫了這個for循環,我可以打印出所有的值,但我似乎無法將它們存儲在列表中。在r列表中追加或存儲for循環

probs <- list() 
for (i in seq(0,1,length=100)) { 
    append(probs,1 - mean(rbinom(100000,6,i)==4)) 
} 

我已經能夠打印我的結果(見下文),但不能存儲它們。

for (i in seq(0,1,length=100)) { 
    print(1 - mean(rbinom(100000,6,i)==4)) 
} 

當我看到概率列表中有什麼時,我得到一個空的list。爲什麼會這樣?

回答

0

append不改變列表,它只是返回一個新的list,它會丟失,因爲它沒有保存在任何地方。

試試這個:

probs <- list() 
for (i in seq(0,1,length=100)) { 
    probs <- append(probs,1 - mean(rbinom(100000,6,i)==4)) 
} 

或使用vector代替:

probs <- vector() 
for (i in seq(0,1,length=100)) { 
    probs <- append(probs,1 - mean(rbinom(100000,6,i)==4)) 
} 
probs # obviously it varies per execution 
    [1] 1.00000 1.00000 1.00000 0.99999 0.99994 0.99988 0.99981 0.99971 0.99946 
[10] 0.99921 0.99864 0.99824 0.99758 0.99674 0.99573 0.99466 0.99271 0.99031 
[19] 0.98862 0.98669 0.98389 0.98074 0.97781 0.97457 0.97028 0.96523 0.96225 
[28] 0.95483 0.94936 0.94447 0.93965 0.93278 0.92486 0.91704 0.90908 0.90305 
[37] 0.89365 0.88608 0.87596 0.86834 0.85762 0.84787 0.83998 0.82830 0.81918 
[46] 0.80843 0.80078 0.78881 0.77933 0.77061 0.76032 0.75416 0.74201 0.73520 
[55] 0.72575 0.71545 0.70855 0.70364 0.69809 0.69209 0.68604 0.68294 0.67610 
[64] 0.67491 0.67463 0.67226 0.67048 0.66950 0.67413 0.67556 0.67900 0.68065 
[73] 0.68591 0.69526 0.70135 0.70930 0.71619 0.72765 0.73874 0.75130 0.76355 
[82] 0.77658 0.79165 0.80553 0.82090 0.83728 0.84947 0.86944 0.88331 0.90126 
[91] 0.91595 0.92875 0.94334 0.95669 0.96918 0.97930 0.98813 0.99400 0.99856 
[100] 1.00000 
+0

唉唉疑難雜症。謝謝! – itjcms18 2015-04-05 19:50:38