[程式] R repeat

看板Statistics作者 (I-20快點來)時間15年前 (2010/05/10 05:42), 編輯推噓0(007)
留言7則, 3人參與, 最新討論串1/1
我想用 簡單的 accept/reject algorithm 生樣本 作法 Step 1 : generate x ~ uniform (0,1) ; y ~ uniform(-1,1) Step 2 : IF x < 0.5*(1+sin(2*pi*y) , let z = y ; otherwise, return to Step 1 以下是我自己寫的程式 z <- repeat { x <- runif(1,0,1) y <- runif(1,-1,1) if (x < 0.5*(1+sin(2*pi*y))) {break} {z <- y} } 我的問題在於有時候 z 會跑出 NULL 我知道寫錯了 但不知道錯在哪 =.=||| 能否煩請知情的版友告訴我該怎麼改 程式才會每次都跑出數據呢? 謝謝 -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.230.18.10 ※ 編輯: laba1014 來自: 61.230.18.10 (05/10 06:14) ※ 編輯: laba1014 來自: 61.230.18.10 (05/10 06:23)

05/10 07:23, , 1F
if (x < 0.5*(1+sin(2*pi*y))){ z<-y; break; }
05/10 07:23, 1F

05/10 07:32, , 2F
很抱歉 C大 我試了你的方法還是會有NULL Orz
05/10 07:32, 2F
※ 編輯: laba1014 來自: 61.230.18.10 (05/10 07:33)

05/10 09:39, , 3F
repeat{x <- runif(1,0,1);y <- runif(1,-1,1);if (x < 0.5
05/10 09:39, 3F

05/10 09:40, , 4F
*(1+sin(2*pi*y))){ z<-y; break; }}
05/10 09:40, 4F

05/10 10:18, , 5F
repeat是flow control,不是function.
05/10 10:18, 5F

05/10 14:25, , 6F
謝謝樓上兩位前輩 我知道問題出在哪了 都是我亂搞 Orz
05/10 14:25, 6F

05/10 14:25, , 7F
真的非常感謝 <(_ _)>
05/10 14:25, 7F
文章代碼(AID): #1BvonUOo (Statistics)