我試圖以遞增順序的範圍(1-3)內產生的4個隨機整數的向量v
,爲此,我想出這種方法:R值不要做樣品正確
v<-1:4
v[1]<-sample(1:3,1)
for (i in 2:4) v[i]<-sample(v[i-1]:3,1)
編輯:由於出現了混亂,我會清理這就是我想要爲載體將是一個數學集合,所以我基本上是想通過使用3種不同的元素,可以得到隨機集形成基數4(顯然必須)重複。
但問題是,設置如{1,1,1,1}有出現的一個方式,而像集合{1,2,3,3}可以在12種不同的方式(顯示爲,在數學集合,順序無關緊要),所以我將有12倍的概率出現其中的一個。我正在尋找一種隨機獲取其中一套的方法,它們都具有相同的出現概率。我應該張貼工作,如果不是因爲這個問題
出於某種原因,不過,它不工作。我已經想通了,當它到達範圍的頂部,它攪亂了,開始以爲在範圍內的所有整數都是可能再次,而在現實中孤單隻有一種可能離開。
即,只要它在我的具體問題達到3,應該是執行:
sample(3:3,1)
應該始終導致3.相反,似乎在執行
sample(1:3,1)
有沒有解決這個問題的方法?
也許我不明白你要做什麼;有沒有什麼原因,你不只是產生一個隨機整數向量,然後整理它們? – tkmckenzie
read'?sample'; 'sample(1:3,4,replace = TRUE)';然後排序 – rawr
此外,這是因爲3:3返回標量3,並且當一個標量傳遞給sample時,使用sample.int,所以你真的得到sample.int(3,1),這是等價的採樣(1:3,1)。 – tkmckenzie