逆向思考全壘打
我把問題改一下。
如果我要從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 的版本和套件版本資訊,
: 讓版友更容易找出錯誤
:
: [關鍵字]:
:
: 選擇性,也許未來有用
: