看板 R_Language 關於我們 聯絡資訊
逆向思考全壘打 我把問題改一下。 如果我要從1:10中抽20個sample,並且要保證每一個資料都有抽到 我想到兩種寫法: # 抽到符合條件為止 x <- sample(10, 20, TRUE) while(length(unique(x)) != 10) { x <- sample(10, 20, TRUE) } # 先保證1:10, 然後再抽 x <- c(1:10, sample(10, 10, TRUE)) ## 如果順序重要,則要再亂序一次 x <- sample(x, length(x), FALSE) ※ 引述《jas9441314 (jet B)》之銘言: : [問題類型]: : : 程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來) : : [軟體熟悉度]: : 請把以下不需要的部份刪除 : 入門(寫過其他程式,只是對語法不熟悉) : *[m : [問題敘述]: : : 我想要從1:368個數字當中 根據每個數字出現的機率p=c(p1,p2,...,p368)抽取1次放回 : 希望1:368每個數字都能被抽中 : 然後重複抽10次這樣的動作 : 但是目前抽出來有些情況只會抽出367個數字而非368個 : 想請問各位大大如何解決 感謝 : : [程式範例]: : : replicate(10,saple(1:368,nrow(data),replace=TRUE,prob=p)) : : [環境敘述]: : : 請提供 sessionInfo() 的輸出結果, : 裡面含有所有你使用的作業系統、R 的版本和套件版本資訊, : 讓版友更容易找出錯誤 : : [關鍵字]: : : 選擇性,也許未來有用 : -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.109.16.164 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1498203276.A.257.html
f496328mm: 推 06/23 17:27
wolfxyz: 很棒耶 逼電腦抽到成功為止 06/23 17:47
memphis: 我覺得這跟原本的機率設定已經不一樣了 06/23 18:03
memphis: 說到底還是原po的敘述自相矛盾不清楚 06/23 18:03
lin15: 還有個做法是當未抽取數目<未抽到的數目就強制結束 06/23 22:50
Wush978: XD 我其實漏看了他的機率設定。但是如果照他的機率設定 06/26 17:34
Wush978: 再加上失敗重抽,可能就可以了(?) 06/26 17:34
Wush978: 這種思維,其實來自於當年學的importance sampling 06/26 17:35