看板 R_Language 關於我們 聯絡資訊
各位先進大家好小弟有個寫R上碰到的問題想請教各位大大?! --R入門階段 > cum = function(v){ for(i in 1:v){ n = which(cumsum(runif(10))>1)[1] print(n) } } >cum(3) [1] 3 [1] 2 [1] 3 產生出來的結果是我想要的但是我想把結果as.dataframe 卻無法,一直想出不解答想請各位大大幫幫忙~ 謝大家 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.119.157.48 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1429968235.A.4B7.html
andrew43: v 的內容是什麼? 04/25 21:42
andrew43: 只是一個整數嗎? 04/25 21:43
celestialgod: cum = data.frame(V = sapply(1:v, function(x){ 04/25 21:54
celestialgod: sum(cumsum(runif(10)) < 1 ) + 1})) 04/25 21:55
celestialgod: 因為你用print,不是把值回傳 04/25 21:55
celestialgod: 這是一個模擬,算inf_k (unif(0,1) k個和>1) 04/25 21:58
celestialgod: 根據蒙提卡羅法應該可以得到是exp(1) 04/25 21:58
celestialgod: 數學證明:http://tinyurl.com/7n5dtzj 04/25 22:00
celestialgod: 以前碩班機率論有證過大於1的case 04/25 22:01
celestialgod: 應該是在隨機過程的部分,N(t)~sum of uniform dist 04/25 22:03
celestialgod: 那個證明是滿難的 for general case 04/25 22:05
celestialgod: 如果是> 1的話 我記得積分沒幾行 04/25 22:05
lofu: 感恩,問題搞定了 ! 04/26 11:50