[問題] 迭代模擬,要重新生成

看板R_Language作者 (極緩板)時間3年前 (2020/12/02 18:48), 編輯推噓8(807)
留言15則, 2人參與, 3年前最新討論串1/1
大家好,附圖為我的程式架構 https://i.imgur.com/LW6h95M.jpg
大致上是: 寫一個function 裡面是對模型配適的模擬與迭代 經由給定的起始值會慢慢收歛至模型的真值 收歛條件為後項減前項<0.01或迭代到第五十次 則此次的模擬結果就會存到下面的avebeta矩陣 重複200次取平均 以上內容 如果想改成: 收歛條件為後項減前項<0.01 若迭代超過50次仍為收斂 則該次取樣的模擬值不存入avebeta矩陣內 程式自己重新生成資料去跑simulation這個function 程式碼該怎麼改… 請教各位前輩與高手了 謝謝大家! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.74.9.63 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1606906113.A.1CC.html

12/02 19:13, 3年前 , 1F
看不懂「己重新生成資料去跑simulation這個function」
12/02 19:13, 1F

12/03 01:06, 3年前 , 2F
如果你只是想把求解和重覆200次合成一個function,最快
12/03 01:06, 2F

12/03 01:07, 3年前 , 3F
的方法就是都寫死在同一個function裡即可。
12/03 01:07, 3F

12/03 13:00, 3年前 , 4F
為何已經用apply了還要用for
12/03 13:00, 4F

12/03 13:03, 3年前 , 5F
break改成continue或next
12/03 13:03, 5F

12/03 13:05, 3年前 , 6F
ifelse再多一個else
12/03 13:05, 6F

12/03 13:06, 3年前 , 7F
先把你真正要的寫例子出來,再case by case
12/03 13:06, 7F

12/03 13:10, 3年前 , 8F
小於0.01太大,其實應該小於1e-6程式才會判斷前項值
12/03 13:10, 8F

12/03 13:10, 3年前 , 9F
等於後項值
12/03 13:10, 9F

12/03 13:11, 3年前 , 10F
要寫<=1e-6
12/03 13:11, 10F

12/03 13:22, 3年前 , 11F
版上有很多模擬的解答可以參考
12/03 13:22, 11F

12/03 16:35, 3年前 , 12F
我猜原po的意思是要改成「若達模擬次數上限但差值不達標
12/03 16:35, 12F

12/03 16:36, 3年前 , 13F
則自動重新做一次」。可參考以下的例子當範本去改
12/03 16:36, 13F

12/03 16:36, 3年前 , 14F
https://ideone.com/r6DFbj 故意寫得很囉唆方便理解
12/03 16:36, 14F

12/03 17:34, 3年前 , 15F
感謝a大
12/03 17:34, 15F
文章代碼(AID): #1Vnt417C (R_Language)
文章代碼(AID): #1Vnt417C (R_Language)