作者jas9441314 (jet B)
看板R_Language
標題[問題] sample中一個每個都抽到
時間Fri Jun 23 00:48:28 2017
[問題類型]:
程式諮詢(我想用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), 來自: 119.14.49.108
※ 文章網址: https://webptt.com/m.aspx?n=bbs/R_Language/M.1498150111.A.1FD.html
1F:→ andrew43: 不懂「希望1:368每個數字都能被抽中」是怎麼回事? 06/23 01:20
2F:→ andrew43: 不是已經給定機率抽出放回,又怎麼保證都能被抽中? 06/23 01:21
3F:推 inin007: 這問題敘述,中文能力要加油 06/23 01:58
4F:→ jas9441314: 就是給定抽後放回 但想每個都抽到 06/23 09:16
5F:推 f496328mm: 你要放回,又要全部都抽到,不可能,你不要放回才能全 06/23 10:49
6F:→ f496328mm: 部抽到 06/23 10:49
7F:→ cywhale: 是說每次抽個1000數字(比如)裡面包含1-368,重複10次?? 06/23 10:50
8F:推 f496328mm: 例如1:2你抽兩次,抽後放回,那有可能出現兩次都抽到 1 06/23 10:52
9F:→ f496328mm: or 2,數字多那就更容易重複抽到相同的 06/23 10:52
10F:推 f496328mm: 如果你其中一個機率p,小於nrow(data),那抽不到是正常 06/23 10:58
11F:→ f496328mm: 的 06/23 10:58
12F:→ f496328mm: 調整seed有可能全部都抽到,不過這樣不太好就是了 06/23 10:59
13F:→ a78998042a: sample.base.v = 1:368 06/23 11:44
14F:→ a78998042a: s_len.v = length(sample.base.v) 06/23 11:44
15F:→ a78998042a: sample.f = function() 06/23 11:44
16F:→ a78998042a: sample( 06/23 11:44
17F:→ a78998042a: c( 06/23 11:44
18F:→ a78998042a: sample(sample.base.v), 06/23 11:44
19F:→ a78998042a: sample(sample.base.v, 06/23 11:45
20F:→ a78998042a: (nrow(data) - s_len.v), 06/23 11:45
21F:→ a78998042a: replace=TRUE, 06/23 11:45
22F:→ a78998042a: prob=rep(1/s_len.v, s_len.v)) 06/23 11:45
23F:→ a78998042a: ) 06/23 11:46
24F:→ a78998042a: ) 06/23 11:46
25F:→ a78998042a: sample.result.m = replicate(10, sample.f()) 06/23 11:46
26F:→ a78998042a: 既然一定要抽到,就不是純隨機的問題,那就先放一個 06/23 11:48
27F:→ a78998042a: 1:368的base,接著再隨機抽湊滿nrow(data)個數,最後 06/23 11:48
28F:→ a78998042a: 再打亂順序。 06/23 11:49
29F:推 f496328mm: 樓上這樣的base,可是他有機率問題耶,他是有給定機率 06/23 13:09
30F:→ f496328mm: 的 06/23 13:09
31F:→ a78998042a: 發文者說明,抽樣條件為 抽出每組樣本 內 base中所有 06/23 15:01
32F:→ a78998042a: 元素 均 至少大於1個。 06/23 15:01
33F:→ a78998042a: 所以當設定base中任意元素之出現機率<1時,抽樣條件就 06/23 15:01
34F:→ a78998042a: 不可能滿足。 06/23 15:01
35F:→ jas9441314: 好的 感謝各位大大 我用其他方式繞過去處理看看 06/23 15:39
36F:推 lin15: 原po國文要加強... 06/23 22:49