2012-11-14 33 views
1

我有概率挑選一個隨機數組成的數組,並返回它的指數

數組
A = c(0, 0, 1/3, 0, 1/3, 1/3) 

我使用的隨機數公式爲:

sample(A, 1, replace=TRUE) 

它給我的一個概率。我正在尋找的是相應概率的索引號。由於概率可以重複,我將如何得到所選擇的特定索引號?另外,它不應該能夠選擇0概率。

謝謝。

+2

你有沒有看''sample'?它需要一個名爲prob的參數,這正是你想要的。 – Dason

+4

爲什麼不採樣這些指示呢? 'a = sample(seq_along(A),1,prob = A,replace = TRUE)'然後你可以用它來得到你的值:'A [a]' – Justin

+0

這個問題的標題和正文似乎是問兩個非常不同的問題。一些澄清將是有用的。 – joran

回答

2

做一個函數做基本上是這樣的:

y <- 0 
while(y == 0) { 
    x <- sample(1:length(A), 1) 
    y <- A[x] 
} 
print(x) 

取代= TRUE在這種背景下多餘的,因爲你只能在同一時間服用一個樣本。

相關問題