以下循環的輸出從零開始,長度爲76,而我的意圖是爲循環生成27個值。我究竟做錯了什麼?爲什麼R中的循環從0開始,而不是序列中的第一個數字?
p=0
for(i in 50:76){
p[i]= choose(76,i)*.5^76 }
p
[1] 0.000000e+00 NA NA NA
[5] NA NA NA NA
[9] NA NA NA NA
[13] NA NA NA NA
[17] NA NA NA NA
[21] NA NA NA NA
[25] NA NA NA NA
[29] NA NA NA NA
[33] NA NA NA NA
[37] NA NA NA NA
[41] NA NA NA NA
[45] NA NA NA NA
[49] NA 2.034472e-03 1.037182e-03 4.986451e-04
[53] 2.258016e-04 9.617474e-05 3.846990e-05 1.442621e-05
[57] 5.061829e-06 1.658185e-06 5.058870e-07 1.433347e-07
[61] 3.759597e-08 9.095800e-09 2.021289e-09 4.105743e-10
[65] 7.579834e-11 1.263306e-11 1.885531e-12 2.495555e-13
[69] 2.893398e-14 2.893398e-15 2.445125e-16 1.698003e-17
[73] 9.304128e-19 3.771944e-20 1.005852e-21 1.323489e-23
謝謝,彌敦道。我對「申請」系列很熟悉,但我從來不記得它是否是'sapply'或任何其他。然而,我總是訴諸循環,而且我知道我會繼續養成習慣。所以我真的想按原樣解決OP問題。我嘗試使用在帖子末尾建議的向量啓動,並且獲得與OP中相同的結果。 – Toni
不錯......我會如何開始一個預先確定長度的空向量'p',像'p < - rep(0,27)',然後填充它?我知道,開始一個沒有預先確定尺寸的空向量是非常低效的。這裏索引變得很頭疼。 – Toni
如果你真的想效率,你應該使用'sapply',但我想你可以做一些像@Akbar建議'P < - 數字(長度= 27); (i在50:76){ p [i-50] =選擇(76,i)* .5^76}; p' – Nate